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.