Track the memory usage of your Go services and collect metrics instrumented from Go’s expvar package.
If you prefer to instrument your Go code using only dogstats-go, you can still use this integration to collect memory-related metrics.
The Go Expvar check is packaged with the Agent, so install the Agent anywhere you run Go services to collect metrics.
If your Go service doesn’t use the expvar package already, import it (
import "expvar"). If you don’t want to instrument your own metrics with expvar - i.e. you only want to collect your service’s memory metrics - import the package using the blank identifier (
import _ "expvar").
If your service doesn’t already listen for HTTP requests (with the http package), make it listen locally just for the Datadog Agent.
Edit the file
go_expvar.d/conf.yaml, in the
conf.d/ folder at the root of your Agent’s configuration directory. See the sample go_expvar.d/conf.yaml for all available configuration options.
init_config: instances: - expvar_url::<your_apps_port> # optionally change the top-level namespace for metrics, e.g. my_go_app.memstats.alloc namespace: my_go_app # defaults to go_expvar, e.g. go_expvar.memstats.alloc # optionally define the metrics to collect, e.g. a counter var your service exposes with expvar.NewInt("my_func_counter") metrics: - path: my_func_counter # if you don't want it named my_go_app.my_func_counter #alias: my_go_app.preferred_counter_name type: counter # other valid options: rate, gauge #tags: # - "tag_name1:tag_value1"
If you don’t configure a
metrics list, the Agent still collects memstat metrics. Use
metrics to tell the Agent which expvar vars to collect.
Restart the Agent to begin sending memstat and expvar metrics to Datadog.
The Go Expvar integration can potentially emit custom metrics, which may impact your billing. By default, there is a limit of 350 metrics. If you require additional metrics, contact Datadog support.
Run the Agent’s status subcommand and look for
go_expvar under the Checks section.
The Go-Expvar check does not include any events.
The Go-Expvar check does not include any service checks.
Need help? Contact Datadog support.
Mistake in the docs? Feel free to contribute!