in case of error all we can do is to just log the error
|
if err != nil {
log . Println ( err )
}
return entries , nil
}
func filterConsumedMessages ( entries [ ] AggregatorLogEntry ) [ ] AggregatorLogEntry {
consumed := [ ] AggregatorLogEntry { }
for i := range entries {
if entries [ i ] . Message == consumedFilter && entries [ i ] . Group != "" {
consumed = append ( consumed , entries [ i ] )
}
}
return consumed
}
func filterByMessage ( entries [ ] AggregatorLogEntry , message string ) [ ] AggregatorLogEntry {
filtered := [ ] AggregatorLogEntry { }
for i := range entries {
if entries [ i ] . Message == message && entries [ i ] . Topic != "" &&
entries [ i ] . Organization != 0 && entries [ i ] . Cluster != "" &&
entries [ i ] . Group == "" {
filtered = append ( filtered , entries [ i ] )
}
}
return filtered
}
func printStatisticLine ( colorizer aurora . Aurora , what string , entries , nextEntries [ ] AggregatorLogEntry ) {
e := strconv . Itoa ( len ( entries ) )
x := strconv . Itoa ( len ( nextEntries ) - len ( entries ) )
fmt . Printf ( "%-12s %s messages (%s excluded)\n" , what , colorizer . Blue ( e ) , colorizer . Red ( x ) )
}
func printAggregatorStatistic ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry ) {
consumed := filterConsumedMessages ( entries )
read := filterByMessage ( entries , readFilter )
whitelisted := filterByMessage ( entries , organizationWhitelisted )
marshalled := filterByMessage ( entries , marshalledFilter )
checked := filterByMessage ( entries , timeOkFilter )
stored := filterByMessage ( entries , storedFilter )
printStatisticLine ( colorizer , consumedFilter , consumed , consumed )
printStatisticLine ( colorizer , readFilter , read , consumed )
printStatisticLine ( colorizer , "Whitelisted" , whitelisted , read )
printStatisticLine ( colorizer , marshalledFilter , marshalled , whitelisted )
printStatisticLine ( colorizer , "Checked" , checked , marshalled )
printStatisticLine ( colorizer , storedFilter , stored , checked )
}
func printConsumedEntry ( colorizer aurora . Aurora , i int , entry * AggregatorLogEntry ) {
e := strconv . Itoa ( i )
fmt . Printf ( "%5s %s %s %s %d\t" , colorizer . Blue ( e ) , colorizer . Gray ( 8 , entry . Time ) , entry . Group , entry . Topic , colorizer . Cyan ( entry . Offset ) )
}
func printReadEntry ( colorizer aurora . Aurora , i int , entry * AggregatorLogEntry ) {
e := strconv . Itoa ( i )
fmt . Printf ( "%5s %s %s %s %d %d %s\t" , colorizer . Blue ( e ) , colorizer . Gray ( 8 , entry . Time ) , entry . Group , entry . Topic , colorizer . Cyan ( entry . Offset ) , colorizer . Yellow ( entry . Organization ) , entry . Cluster )
}
func printErrorsForMessageWithOffset ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry , offset int ) {
for i := range entries {
if entries [ i ] . Offset == offset && entries [ i ] . Level == entryLevelError {
fmt . Printf ( timeAndMessageTemplate , colorizer . Gray ( 8 , entries [ i ] . Time ) , colorizer . Red ( entries [ i ] . Error ) )
}
}
}
func printMessageForErrorsMessageWithOffset ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry , offset int ) {
for i := range entries {
if entries [ i ] . Offset == offset && entries [ i ] . Level == "error" {
fmt . Printf ( timeAndMessageTemplate , colorizer . Gray ( 8 , entries [ i ] . Time ) , colorizer . Red ( entries [ i ] . Message ) )
}
}
}
func printConsumedEntries ( colorizer aurora . Aurora , entries , notRead [ ] AggregatorLogEntry ) {
for i := range notRead {
printConsumedEntry ( colorizer , i + 1 , & notRead [ i ] )
printErrorsForMessageWithOffset ( colorizer , entries , notRead [ i ] . Offset )
}
fmt . Println ( )
}
func printReadEntries ( colorizer aurora . Aurora , entries , notRead [ ] AggregatorLogEntry ) {
for i := range notRead {
printReadEntry ( colorizer , i + 1 , & notRead [ i ] )
printMessageForErrorsMessageWithOffset ( colorizer , entries , notRead [ i ] . Offset )
}
fmt . Println ( )
}
func messageWithOffsetIn ( entries [ ] AggregatorLogEntry , offset int ) bool {
for i := range entries {
if entries [ i ] . Offset == offset {
return true
}
}
return false
}
func diffEntryListsByOffset ( list1 , list2 [ ] AggregatorLogEntry ) [ ] AggregatorLogEntry {
diff := [ ] AggregatorLogEntry { }
for i := range list1 {
if ! messageWithOffsetIn ( list2 , list1 [ i ] . Offset ) {
diff = append ( diff , list1 [ i ] )
}
}
return diff
}
func getConsumedNotReadMessages ( entries [ ] AggregatorLogEntry ) [ ] AggregatorLogEntry {
consumed := filterConsumedMessages ( entries )
read := filterByMessage ( entries , readFilter )
return diffEntryListsByOffset ( consumed , read )
}
func getNotWhitelistedMessages ( entries [ ] AggregatorLogEntry ) [ ] AggregatorLogEntry {
read := filterByMessage ( entries , readFilter )
whitelisted := filterByMessage ( entries , organizationWhitelisted )
return diffEntryListsByOffset ( read , whitelisted )
}
func getNotMarshalledMessages ( entries [ ] AggregatorLogEntry ) [ ] AggregatorLogEntry {
whitelisted := filterByMessage ( entries , organizationWhitelisted )
marshalled := filterByMessage ( entries , marshalledFilter )
return diffEntryListsByOffset ( whitelisted , marshalled )
}
func getNotCheckedMessages ( entries [ ] AggregatorLogEntry ) [ ] AggregatorLogEntry {
marshalled := filterByMessage ( entries , marshalledFilter )
checked := filterByMessage ( entries , timeOkFilter )
return diffEntryListsByOffset ( marshalled , checked )
}
func getNotStoredMessages ( entries [ ] AggregatorLogEntry ) [ ] AggregatorLogEntry {
checked := filterByMessage ( entries , timeOkFilter )
stored := filterByMessage ( entries , storedFilter )
return diffEntryListsByOffset ( checked , stored )
}
func printConsumedNotRead ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry ) {
notRead := getConsumedNotReadMessages ( entries )
printConsumedEntries ( colorizer , entries , notRead )
}
func printNotWhitelisted ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry ) {
notWhitelisted := getNotWhitelistedMessages ( entries )
printReadEntries ( colorizer , entries , notWhitelisted )
}
func printWhitelistedNotMarshalled ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry ) {
notMarshalled := getNotMarshalledMessages ( entries )
printReadEntries ( colorizer , entries , notMarshalled )
}
func printMarshalledNotChecked ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry ) {
notChecked := getNotCheckedMessages ( entries )
printReadEntries ( colorizer , entries , notChecked )
}
func printCheckedNotStored ( colorizer aurora . Aurora , entries [ ] AggregatorLogEntry ) {
notStored := getNotStoredMessages ( entries )
printReadEntries ( colorizer , entries , notStored )
}
|