in internal/kibana/send_config.go [63:112]
func flattenAndClean(conf *ucfg.Config) (map[string]interface{}, error) {
m := mapstr.M{}
if err := conf.Unpack(m); err != nil {
return nil, err
}
flat := m.Flatten()
out := make(mapstr.M, len(flat))
for k, v := range flat {
// remove if elasticsearch is NOT in the front position?
// *.elasticsearch.* according to axw
if strings.Contains(k, "elasticsearch") {
continue
}
if strings.Contains(k, "kibana") {
continue
}
if strings.HasPrefix(k, "instrumentation") {
continue
}
if strings.HasPrefix(k, "logging.") {
switch k[8:] {
case "level", "selectors", "metrics.enabled", "metrics.period":
default:
continue
}
}
if strings.HasPrefix(k, "path") {
continue
}
if k == "gc_percent" || k == "name" || k == "xpack.monitoring.enabled" {
continue
}
if k == "apm-server.host" {
v = "0.0.0.0:8200"
}
if strings.HasPrefix(k, "apm-server.ssl.") {
// Following ssl related settings need to be synced:
// apm-server.ssl.enabled
// apm-server.ssl.certificate
// apm-server.ssl.key
switch k[15:] {
case "enabled", "certificate", "key":
default:
continue
}
}
out[k] = v
}
return out, nil
}