//PrintForInfluxDB prints the data in influxdb lineformat func (p PerformanceData) PrintForInfluxDB(version string) string { if helper.VersionOrdinal(version) >= helper.VersionOrdinal("0.9") { tableName := fmt.Sprintf(`metrics,host=%s`, helper.SanitizeInfluxInput(p.hostname)) if p.service == "" { tableName += fmt.Sprintf(`,service=%s`, helper.SanitizeInfluxInput(config.GetConfig().Influx.HostcheckAlias)) } else { tableName += fmt.Sprintf(`,service=%s`, helper.SanitizeInfluxInput(p.service)) } tableName += fmt.Sprintf(`,command=%s,performanceLabel=%s`, helper.SanitizeInfluxInput(p.command), helper.SanitizeInfluxInput(p.performanceLabel), ) if len(p.tags) > 0 { tableName += fmt.Sprintf(`,%s`, helper.PrintMapAsString(helper.SanitizeMap(p.tags), ",", "=")) } if p.unit != "" { tableName += fmt.Sprintf(`,unit=%s`, p.unit) } tableName += fmt.Sprintf(` %s`, helper.PrintMapAsString(helper.SanitizeMap(p.fields), ",", "=")) tableName += fmt.Sprintf(" %s\n", p.time) return tableName } return "" }
//PrintForElasticsearch prints in the elasticsearch json format func (notification NotificationData) PrintForElasticsearch(version, index string) string { if helper.VersionOrdinal(version) >= helper.VersionOrdinal("2.0") { text := notificationToText(notification.notificationType) value := fmt.Sprintf("%s:<br> %s", strings.TrimSpace(notification.notificationLevel), notification.comment) return notification.genElasticLineWithValue(index, text, value, notification.entryTime) } logging.GetLogger().Criticalf("This elasticsearchversion [%f] given in the config is not supported", version) panic("") }
//PrintForElasticsearch prints in the elasticsearch json format func (downtime DowntimeData) PrintForElasticsearch(version, index string) string { if helper.VersionOrdinal(version) >= helper.VersionOrdinal("2.0") { typ := `downtime` start := downtime.genElasticLineWithValue(index, typ, strings.TrimSpace("Downtime start: <br>"+downtime.comment), downtime.entryTime) end := downtime.genElasticLineWithValue(index, typ, strings.TrimSpace("Downtime end: <br>"+downtime.comment), downtime.endTime) return start + "\n" + end } logging.GetLogger().Criticalf("This elasticsearchversion [%f] given in the config is not supported", version) panic("") }
//PrintForInfluxDB prints the data in influxdb lineformat func (downtime DowntimeData) PrintForInfluxDB(version string) string { downtime.sanitizeValues() if helper.VersionOrdinal(version) >= helper.VersionOrdinal("0.9") { tags := ",type=downtime,author=" + downtime.author start := fmt.Sprintf("%s%s message=\"%s\" %s", downtime.getTablename(), tags, strings.TrimSpace("Downtime start: <br>"+downtime.comment), helper.CastStringTimeFromSToMs(downtime.entryTime)) end := fmt.Sprintf("%s%s message=\"%s\" %s", downtime.getTablename(), tags, strings.TrimSpace("Downtime end: <br>"+downtime.comment), helper.CastStringTimeFromSToMs(downtime.endTime)) return start + "\n" + end } logging.GetLogger().Criticalf("This influxversion [%f] given in the config is not supported", version) panic("") }
//PrintForElasticsearch prints in the elasticsearch json format func (p Printable) PrintForElasticsearch(version, index string) string { if helper.VersionOrdinal(version) >= helper.VersionOrdinal("2.0") { head := fmt.Sprintf(`{"index":{"_index":"%s","_type":"%s"}}`, helper.GenIndex(index, p.Timestamp), p.Table) + "\n" data := fmt.Sprintf(`{"timestamp":%s`, p.Timestamp) data += helper.CreateJSONFromStringMap(p.tags) data += helper.CreateJSONFromStringMap(p.fields) data += "}\n" return head + data } return "" }
//PrintForInfluxDB prints the data in influxdb lineformat func (notification NotificationData) PrintForInfluxDB(version string) string { notification.sanitizeValues() if helper.VersionOrdinal(version) >= helper.VersionOrdinal("0.9") { var tags string if text := notificationToText(notification.notificationType); text != "" { tags = ",type=" + text } value := fmt.Sprintf("%s:<br> %s", strings.TrimSpace(notification.notificationLevel), notification.comment) return notification.genInfluxLineWithValue(tags, value) } logging.GetLogger().Criticalf("This influxversion [%f] given in the config is not supported", version) panic("") }
//PrintForInfluxDB prints the data in influxdb lineformat func (p Printable) PrintForInfluxDB(version string) string { if helper.VersionOrdinal(version) >= helper.VersionOrdinal("0.9") { line := p.Table if len(p.tags) > 0 { line += fmt.Sprintf(`,%s`, helper.PrintMapAsString(p.tags, ",", "=")) } line += " " if len(p.fields) > 0 { line += fmt.Sprintf(`%s`, helper.PrintMapAsString(p.fields, ",", "=")) } return fmt.Sprintf("%s %s", line, p.Timestamp) } return "" }
//Converts an collector.Printable to a string. func (worker Worker) castJobToString(job collector.Printable) (string, error) { var result string var err error if helper.VersionOrdinal(worker.version) >= helper.VersionOrdinal("2.0") { result = job.PrintForElasticsearch(worker.version, worker.index) } else { worker.log.Fatalf("This elasticsearch version [%s] given in the config is not supported", worker.version) err = errors.New("This elasticsearch version given in the config is not supported") } if len(result) > 1 && result[len(result)-1:] != "\n" { result += "\n" } return result, err }
//PrintForElasticsearch prints in the elasticsearch json format func (p PerformanceData) PrintForElasticsearch(version, index string) string { if helper.VersionOrdinal(version) >= helper.VersionOrdinal("2.0") { if p.service == "" { p.service = config.GetConfig().Influx.HostcheckAlias } head := fmt.Sprintf(`{"index":{"_index":"%s","_type":"metrics"}}`, helper.GenIndex(index, p.time)) + "\n" data := fmt.Sprintf( `{"timestamp":%s,"host":"%s","service":"%s","command":"%s","performanceLabel":"%s"`, p.time, helper.SanitizeElasicInput(p.hostname), helper.SanitizeElasicInput(p.service), helper.SanitizeElasicInput(p.command), helper.SanitizeElasicInput(p.performanceLabel), ) if p.unit != "" { data += fmt.Sprintf(`,"unit":"%s"`, helper.SanitizeElasicInput(p.unit)) } data += helper.CreateJSONFromStringMap(p.tags) data += helper.CreateJSONFromStringMap(p.fields) data += "}\n" return head + data } return "" }