forked from DataDog/datadog-agent
-
Notifications
You must be signed in to change notification settings - Fork 2
/
metrics.go
30 lines (24 loc) · 973 Bytes
/
metrics.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Unless explicitly stated otherwise all files in this repository are licensed
// under the Apache License Version 2.0.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2016-present Datadog, Inc.
package app
import (
"fmt"
"time"
ddgostatsd "github.com/DataDog/datadog-go/statsd"
"github.com/StackVista/stackstate-agent/pkg/version"
)
// sendRunningMetrics exports a metric to distinguish between security-agent modules that are activated
func sendRunningMetrics(statsdClient *ddgostatsd.Client, moduleName string) *time.Ticker {
// Retrieve the agent version using a dedicated package
tags := []string{fmt.Sprintf("version:%s", version.AgentVersion)}
// Send the metric regularly
heartbeat := time.NewTicker(15 * time.Second)
go func() {
for range heartbeat.C {
statsdClient.Gauge(fmt.Sprintf("datadog.security_agent.%s.running", moduleName), 1, tags, 1) //nolint:errcheck
}
}()
return heartbeat
}