Documentation

victorops.endpoint() function

The victorops.endpoint() function is a user-contributed function maintained by the package author and can be updated or removed at any time.

The victorops.endpoint() function sends events to VictorOps using data from input rows.

Function type: Output

VictorOps is now Splunk On-Call

Splunk acquired VictorOps and VictorOps is now Splunk On-Call.

import "contrib/bonitoo-io/victorops"

victorops.endpoint(
  url: "https://alert.victorops.com/integrations/generic/00000000/alert${apiKey}/${routingKey}",
)

Parameters

url

(Required) VictorOps REST endpoint integration URL.

Data type: String

VictorOps URL example
https://alert.victorops.com/integrations/generic/00000000/alert/<api_key>/<routing_key>

Replace <api_key> and <routing_key> with valid VictorOps API and routing keys.

Usage

victorops.endpoint is a factory function that outputs another function. The output function requires a mapFn parameter.

mapFn

A function that builds the object used to generate the POST request. Requires an r parameter.

Data type: Function

mapFn accepts a table row (r) and returns an object that must include the following fields:

  • monitoringTool
  • messageType
  • entityID
  • entityDisplayName
  • stateMessage
  • timestamp

For more information, see victorops.event() parameters.

Examples

Send critical events to VictorOps
import "contrib/bonitoo-io/victorops"
import "influxdata/influxdb/secrets"

apiKey = secrets.get(key: "VICTOROPS_API_KEY")
routingKey = secrets.get(key: "VICTOROPS_ROUTING_KEY")
url = "https://alert.victorops.com/integrations/generic/00000000/alert/${apiKey}/${routingKey}"
endpoint = victorops.endpoint(url: url)

crit_events = from(bucket: "example-bucket")
  |> range(start: -1m)
  |> filter(fn: (r) => r._measurement == "statuses" and status == "crit")

crit_events
  |> endpoint(mapFn: (r) => ({
      monitoringTool: "InfluxDB"
      messageType: "CRITICAL",
      entityID: "${r.host}-${r._field)-critical",
      entityDisplayName: "Critical alert for ${r.host}",
      stateMessage: "${r.host} is in a critical state. ${r._field} is ${string(v: r._value)}.",
      timestamp: now()
    })
  )()

Package author and maintainer

Github: @alespour, @bonitoo-io
InfluxDB Slack: @Ales Pour


Set your InfluxDB URL

Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.