Datadog¶
This repo offers a way to emit Honeydipper internal metrics to datadog
Installation¶
Include the following section in your init.yaml under repos section
- repo: https://github.com/honeydipper/honeydipper-config-essentials
branch: main
path: /datadog
Drivers¶
This repo provides following drivers
datadog-emitter¶
This driver enables Honeydipper to emit internal metrics to datadog so we can monitor how Honeydipper is performing.
Configurations
| statsdHost: | The host or IP of the datadog agent to which the metrics are sent to, cannot be combined with useHostPort |
|---|---|
| useHostPort: | boolean, if true, send the metrics to the IP specified through the environment variable DOGSTATSD_HOST_IP, which usually is set to k8s node IP using fieldRef. |
| statsdPort: | string, the port number on the datadog agent host to which the metrics are sent to |
For example
---
drivers:
datadog-emitter:
useHostPort: true
statsdPort: "8125"
RPC: counter_increment¶
Increment a counter metric
Parameters
| name: | The metric name |
|---|---|
| tags: | A list of strings to be attached as tags |
For example, calling from a driver
driver.RPC.Caller.CallNoWait(driver.Out, "emitter", "counter_increment", map[string]interface{}{
"name": "myapp.metric.counter1",
"tags": []string{
"server1",
"team1",
},
})
RPC: gauge_set¶
Set a gauge value
Parameters
| name: | The metric name |
|---|---|
| tags: | A list of strings to be attached as tags |
| value: | String, the value of the metric |
For example, calling from a driver
driver.RPC.Caller.CallNoWait(driver.Out, "emitter", "gauge_set", map[string]interface{}{
"name": "myapp.metric.gauge1",
"tags": []string{
"server1",
"team1",
},
"value": "1000",
})
Systems¶
datadog¶
This system enables Honeydipper to integrate with datadog, so Honeydipper can emit metrics using workflows or functions.
The system doesn’t take authentication configuration, but uses configuration from the
datadog-emitter driver. See the driver for details.
Configurations
| heartbeat_metric: | |
|---|---|
| Uses this metric to track all heartbeats with different tags. | |
Function: heartbeat¶
This function will send a heartbeat request to datadog.
Input Contexts
| heartbeat: | The prefix of the heartbeat metric name used for tagging. |
|---|---|
| heartbeat_expires: | |
| Tag the metric with expiring duration, used for creating monitors. | |
| heartbeat_owner: | |
| The owner of the heartbeat, used as the suffix of the metric name. | |
Function: increment¶
This function will increment a counter metric.
Input Contexts
| metric: | The name of the metric. |
|---|---|
| tags: | Optional, a list of strings as tags for the metric. |
Function: set¶
This function will set a gauge metric.
Input Contexts
| metric: | The name of the metric. |
|---|---|
| tags: | Optional, a list of strings as tags for the metric. |
| value: | The value of the metric. |