diff --git a/inputs/greenplum/greenplum.go b/inputs/greenplum/greenplum.go index 64c5b45b7..86439dd39 100644 --- a/inputs/greenplum/greenplum.go +++ b/inputs/greenplum/greenplum.go @@ -48,7 +48,7 @@ func (ins *Greenplum) Gather(slist *types.SampleList) { stateValue = strings.TrimSpace(stateValue) gpstate := strings.Fields(stateValue) if len(gpstate)%7 != 0 { - log.Println("E! failed to parse gpstate -m output: %v", gpstate) + log.Printf("E! failed to parse gpstate -m output: %v\n", gpstate) return } line := len(gpstate) / 7 diff --git a/inputs/mtail/internal/metrics/store_test.go b/inputs/mtail/internal/metrics/store_test.go index c6174be27..8911c4eb3 100644 --- a/inputs/mtail/internal/metrics/store_test.go +++ b/inputs/mtail/internal/metrics/store_test.go @@ -36,7 +36,7 @@ func TestDuplicateMetric(t *testing.T) { } _ = s.Add(NewMetric("foo", "prog", Counter, Float)) - log.Println("Store: %v", s) + log.Println("Store: ", s) expectedMetrics++ if len(s.Metrics["foo"]) != expectedMetrics { t.Fatalf("should add metric of a different type: %v", s) @@ -63,10 +63,12 @@ func TestDuplicateMetric(t *testing.T) { } } -/* A program can add a metric with the same name and - of different type. - Prometheus behavior in this case is undefined. - @see https://github.com/google/mtail/issues/130 +/* +A program can add a metric with the same name and + + of different type. + Prometheus behavior in this case is undefined. + @see https://github.com/google/mtail/issues/130 */ func TestAddMetricDifferentType(t *testing.T) { expected := 2 diff --git a/inputs/mtail/internal/testutil/expvar.go b/inputs/mtail/internal/testutil/expvar.go index 9321078c7..9a75c566a 100644 --- a/inputs/mtail/internal/testutil/expvar.go +++ b/inputs/mtail/internal/testutil/expvar.go @@ -15,7 +15,7 @@ import ( func TestGetExpvar(tb testing.TB, name string) expvar.Var { tb.Helper() v := expvar.Get(name) - log.Println("Var %q is %v", name, v) + log.Printf("Var %s is %v\n", name, v) return v } diff --git a/inputs/smart/instances.go b/inputs/smart/instances.go index 33762ad60..29f33413b 100644 --- a/inputs/smart/instances.go +++ b/inputs/smart/instances.go @@ -4,7 +4,6 @@ import ( "bufio" "context" "errors" - "flashcat.cloud/categraf/pkg/stringx" "fmt" "log" "os" @@ -17,6 +16,8 @@ import ( "syscall" "time" + "flashcat.cloud/categraf/pkg/stringx" + "flashcat.cloud/categraf/config" "flashcat.cloud/categraf/types" ) @@ -343,7 +344,7 @@ func gatherIntelNVMeDisk(slist *types.SampleList, timeout config.Duration, usesu _, er := exitStatus(e) if er != nil { - log.Printf("E! failed to run command '%s %s': %w - %s", nvme, strings.Join(args, " "), e, outStr) + log.Printf("E! failed to run command '%s %s': %v - %s\n", nvme, strings.Join(args, " "), e, outStr) return } @@ -412,7 +413,7 @@ func (m *Instance) gatherDisk(slist *types.SampleList, device string, wg *sync.W // Ignore all exit statuses except if it is a command line parse error exitStatus, er := exitStatus(e) if er != nil { - log.Printf("E! failed to run command '%s %s': %w - %s", m.PathSmartctl, strings.Join(args, " "), e, outStr) + log.Printf("E! failed to run command '%s %s': %v - %s\n", m.PathSmartctl, strings.Join(args, " "), e, outStr) return } @@ -547,7 +548,7 @@ func (m *Instance) gatherDisk(slist *types.SampleList, device string, wg *sync.W } if err := parse(fields, deviceFields, metric, matches[2]); err != nil { - log.Printf("E!error parsing %s: %q: %w", attr.Name, matches[2], err) + log.Printf("E!error parsing %s: %q: %v\n", attr.Name, matches[2], err) continue } // if the field is classified as an attribute, only add it diff --git a/inputs/vsphere/client.go b/inputs/vsphere/client.go index a4405bb42..dfd78af03 100644 --- a/inputs/vsphere/client.go +++ b/inputs/vsphere/client.go @@ -200,7 +200,7 @@ func NewClient(ctx context.Context, vSphereURL *url.URL, vs *Instance) (*Client, log.Println("D! vCenter says max_query_metrics should be ", n) } if n < vs.MaxQueryMetrics { - log.Println("W! Configured max_query_metrics is %d, but server limits it to %d. Reducing.", vs.MaxQueryMetrics, n) + log.Printf("W! Configured max_query_metrics is %d, but server limits it to %d. Reducing.\n", vs.MaxQueryMetrics, n) vs.MaxQueryMetrics = n } return client, nil @@ -253,7 +253,7 @@ func (c *Client) GetMaxQueryMetrics(ctx context.Context) (int, error) { v, err := strconv.Atoi(s) if err == nil { if config.Config.DebugMode { - log.Println("D! vCenter maxQueryMetrics is defined: %d", v) + log.Printf("D! vCenter maxQueryMetrics is defined: %d\n", v) } if v == -1 { // Whatever the server says, we never ask for more metrics than this. @@ -272,7 +272,7 @@ func (c *Client) GetMaxQueryMetrics(ctx context.Context) (int, error) { ver := c.Client.Client.ServiceContent.About.Version parts := strings.Split(ver, ".") if len(parts) < 2 { - log.Println("W! vCenter returned an invalid version string: %s. Using default query size=64", ver) + log.Printf("W! vCenter returned an invalid version string: %s. Using default query size=64\n", ver) return 64, nil } log.Println("I! vCenter version is: ", ver) diff --git a/inputs/vsphere/endpoint.go b/inputs/vsphere/endpoint.go index 94cc3360f..9fd23c410 100644 --- a/inputs/vsphere/endpoint.go +++ b/inputs/vsphere/endpoint.go @@ -256,7 +256,7 @@ func anythingEnabled(ex []string) bool { func newFilterOrPanic(include []string, exclude []string) filter.Filter { f, err := filter.NewIncludeExcludeFilter(include, exclude) if err != nil { - log.Printf("E! Include/exclude filters are invalid: ", err) + log.Println("E! Include/exclude filters are invalid: ", err) return nil } return f @@ -571,9 +571,9 @@ func (e *Endpoint) complexMetadataSelect(ctx context.Context, res *resourceKind, } instInfoMux := sync.Mutex{} - te,err := NewThrottledExecutor(e.Parent.DiscoverConcurrency) - if err !=nil { - log.Println("E! NewThrottledExecutor",err.Error()) + te, err := NewThrottledExecutor(e.Parent.DiscoverConcurrency) + if err != nil { + log.Println("E! NewThrottledExecutor", err.Error()) return } for _, obj := range sampledObjects { @@ -953,9 +953,9 @@ func submitChunkJob(ctx context.Context, te *ThrottledExecutor, job queryJob, pq } func (e *Endpoint) chunkify(ctx context.Context, res *resourceKind, now time.Time, latest time.Time, job queryJob) { - te, err:= NewThrottledExecutor(e.Parent.CollectConcurrency) - if err!= nil { - log.Println("E! NewThrottledExecutor",err.Error()) + te, err := NewThrottledExecutor(e.Parent.CollectConcurrency) + if err != nil { + log.Println("E! NewThrottledExecutor", err.Error()) return } maxMetrics := e.Parent.MaxQueryMetrics diff --git a/inputs/vsphere/vsphere.go b/inputs/vsphere/vsphere.go index 394a44743..7068720c2 100644 --- a/inputs/vsphere/vsphere.go +++ b/inputs/vsphere/vsphere.go @@ -214,7 +214,7 @@ func (ins *Instance) Gather(slist *types.SampleList) { } if err != nil { // acc.AddError(err) - log.Printf("E! fail to gather\n", err) + log.Println("E! fail to gather: ", err) } } diff --git a/logs/auditor/auditor.go b/logs/auditor/auditor.go index f4064d282..10aaa4f39 100644 --- a/logs/auditor/auditor.go +++ b/logs/auditor/auditor.go @@ -187,7 +187,7 @@ func (a *RegistryAuditor) recoverRegistry() map[string]*RegistryEntry { mr, err := ioutil.ReadFile(a.registryPath) if err != nil { if os.IsNotExist(err) { - log.Println("I! Could not find state file at %q, will start with default offsets", a.registryPath) + log.Printf("I! Could not find state file at %q, will start with default offsets\n", a.registryPath) } else { log.Println("E!", err) } diff --git a/logs/input/file/tailer_nix.go b/logs/input/file/tailer_nix.go index 2a2ccd622..b6b182499 100644 --- a/logs/input/file/tailer_nix.go +++ b/logs/input/file/tailer_nix.go @@ -53,7 +53,7 @@ func (t *Tailer) read() (int, error) { if err != nil && err != io.EOF { // an unexpected error occurred, stop the tailor t.file.Source.Status.Error(err) - return 0, fmt.Errorf("E! Unexpected error occurred while reading file: ", err) + return 0, fmt.Errorf("E! Unexpected error occurred while reading file: %v", err) } if n == 0 { return 0, nil diff --git a/logs/input/kubernetes/launcher.go b/logs/input/kubernetes/launcher.go index 04d04ad86..ae643997e 100644 --- a/logs/input/kubernetes/launcher.go +++ b/logs/input/kubernetes/launcher.go @@ -71,7 +71,7 @@ func IsAvailable() (bool, *retry.Retrier) { log.Println("Kubernetes launcher is available") return true, nil } - log.Printf("Kubernetes launcher is not available: %v", retrier.LastError()) + log.Println("Kubernetes launcher is not available: ", retrier.LastError()) return false, retrier } @@ -79,7 +79,7 @@ func IsAvailable() (bool, *retry.Retrier) { func NewLauncher(sources *logsconfig.LogSources, services *service.Services, collectAll bool) *Launcher { kubeutil, err := kubelet.GetKubeUtil() if err != nil { - log.Printf("KubeUtil not available, failed to create launcher", err) + log.Println("KubeUtil not available, failed to create launcher: ", err) return nil } launcher := &Launcher{ @@ -153,7 +153,7 @@ func (l *Launcher) scheduleServiceForRetry(svc *service.Service) { func (l *Launcher) delayRetry(ops *retryOps) { delay := ops.backoff.NextBackOff() if delay == backoff.Stop { - log.Println("Unable to add source for container %v", ops.service.GetEntityID()) + log.Println("Unable to add source for container ", ops.service.GetEntityID()) delete(l.pendingRetries, ops.service.GetEntityID()) return } @@ -177,7 +177,7 @@ func (l *Launcher) addSource(svc *service.Service) { if err != nil { if errors.IsRetriable(err) { // Attempt to reschedule the source later - log.Println("Failed to fetch pod info for container %v, will retry: %v", svc.Identifier, err) + log.Printf("Failed to fetch pod info for container %v, will retry: %v\n", svc.Identifier, err) l.scheduleServiceForRetry(svc) return } @@ -192,7 +192,7 @@ func (l *Launcher) addSource(svc *service.Service) { source, err := l.getSource(pod, container) if err != nil { if err != errCollectAllDisabled { - log.Println("Invalid configuration for pod %v, container %v: %v", pod.Metadata.Name, container.Name, err) + log.Printf("Invalid configuration for pod %v, container %v: %v\n", pod.Metadata.Name, container.Name, err) } return } diff --git a/logs/util/docker/containers.go b/logs/util/docker/containers.go index 72ae0e46a..3f317d70a 100644 --- a/logs/util/docker/containers.go +++ b/logs/util/docker/containers.go @@ -235,7 +235,7 @@ func (d *DockerUtil) parseContainerNetworkAddresses(cID string, ports []types.Po if isExposed(port) { IP := net.ParseIP(port.IP) if IP == nil { - log.Println("Unable to parse IP: %v for container: %s", port.IP, container) + log.Printf("Unable to parse IP: %v for container: %s\n", port.IP, container) continue } addrList = append(addrList, containers.NetworkAddress{ @@ -253,12 +253,12 @@ func (d *DockerUtil) parseContainerNetworkAddresses(cID string, ports []types.Po // Retieve IPs from network settings for the cached ports for _, network := range netSettings.Networks { if network.IPAddress == "" { - log.Println("No IP found for container %s in network %s", container, network.NetworkID) + log.Printf("No IP found for container %s in network %s\n", container, network.NetworkID) continue } IP := net.ParseIP(network.IPAddress) if IP == nil { - log.Println("Unable to parse IP: %v for container: %s", network.IPAddress, container) + log.Printf("Unable to parse IP: %v for container: %s\n", network.IPAddress, container) continue } for _, addr := range tempAddrList { diff --git a/logs/util/docker/event_pull.go b/logs/util/docker/event_pull.go index e5e5610ee..480375b63 100644 --- a/logs/util/docker/event_pull.go +++ b/logs/util/docker/event_pull.go @@ -118,7 +118,7 @@ func (d *DockerUtil) LatestContainerEvents(ctx context.Context, since time.Time) case msg := <-msgChan: event, err := d.processContainerEvent(ctx, msg) if err != nil { - log.Println("W! error parsing docker message: %s", err) + log.Println("W! error parsing docker message: ", err) continue } else if event == nil { continue diff --git a/logs/util/docker/event_stream.go b/logs/util/docker/event_stream.go index 4dee5209e..4a3547828 100644 --- a/logs/util/docker/event_stream.go +++ b/logs/util/docker/event_stream.go @@ -111,7 +111,7 @@ CONNECT: // Outer loop handles re-connecting in case the docker daemon closes th log.Println("D! Got EOF, re-connecting") } else { // Else, let's wait 10 seconds and try reconnecting - log.Println("W! Got error from docker, waiting for 10 seconds: %s", err) + log.Println("W! Got error from docker, waiting for 10 seconds: ", err) time.Sleep(10 * time.Second) } cancelFunc() @@ -120,7 +120,7 @@ CONNECT: // Outer loop handles re-connecting in case the docker daemon closes th latestTimestamp = msg.Time event, err := d.processContainerEvent(ctx, msg) if err != nil { - log.Println("D! Skipping event: %s", err) + log.Println("D! Skipping event: ", err) continue } if event == nil { diff --git a/logs/util/docker/network.go b/logs/util/docker/network.go index 6f80c2d62..3a961d942 100644 --- a/logs/util/docker/network.go +++ b/logs/util/docker/network.go @@ -52,14 +52,14 @@ func findDockerNetworks(containerID string, pid int, container types.Container) // Check the known network modes that require specific handling. // Other network modes will look at the docker NetworkSettings. if netMode == containers.HostNetworkMode { - log.Println("Container %s is in network host mode, its network metrics are for the whole host", containerID) + log.Printf("Container %s is in network host mode, its network metrics are for the whole host\n", containerID) return []dockerNetwork{hostNetwork} } else if netMode == containers.NoneNetworkMode { - log.Println("Container %s is in network mode 'none', we will collect metrics for the whole host", containerID) + log.Printf("Container %s is in network mode 'none', we will collect metrics for the whole host\n", containerID) return []dockerNetwork{hostNetwork} } else if strings.HasPrefix(netMode, "container:") { netContainerID := strings.TrimPrefix(netMode, "container:") - log.Println("Container %s uses the network namespace of container:%s", containerID, netContainerID) + log.Printf("Container %s uses the network namespace of container:%s\n", containerID, netContainerID) return []dockerNetwork{{routingContainerID: netContainerID}} } @@ -75,7 +75,7 @@ func findDockerNetworks(containerID string, pid int, container types.Container) interfaces := make(map[string]uint64) for netName, netConf := range netSettings.Networks { if netName == "host" { - log.Println("Container %s is in network host mode, its network metrics are for the whole host", containerID) + log.Printf("Container %s is in network host mode, its network metrics are for the whole host\n", containerID) return []dockerNetwork{hostNetwork} } diff --git a/logs/util/docker/storage.go b/logs/util/docker/storage.go index 452722789..e2eabdd8e 100644 --- a/logs/util/docker/storage.go +++ b/logs/util/docker/storage.go @@ -89,12 +89,12 @@ func parseStorageStatsFromInfo(info types.Info) ([]*StorageStats, error) { valueString := entry[1] fields := strings.Fields(key) if len(fields) != 3 || strings.ToLower(fields[1]) != "space" { - log.Println("ignoring invalid storage stat: %s", key) + log.Println("ignoring invalid storage stat: ", key) continue } valueInt, err := parseDiskQuantity(valueString) if err != nil { - log.Println("ignoring invalid value %s for stat %s: %s", valueString, key, err) + log.Printf("ignoring invalid value %s for stat %s: %s\n", valueString, key, err) continue } storageType := strings.ToLower(fields[0])