Documentation

servicenow.endpoint() function

Flux 0.136.0+

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

The servicenow.endpoint() function sends events to ServiceNow using data from input rows.

import "contrib/bonitoo-io/servicenow"

servicenow.endpoint(
    url: "https://example-tenant.service-now.com/api/global/em/jsonv2",
    username: "example-username",
    password: "example-password"
)

Parameters

url

(Required) ServiceNow web service URL.

username

(Required) ServiceNow username to use for HTTP BASIC authentication.

password

(Required) ServiceNow password to use for HTTP BASIC authentication.

Usage

servicenow.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 ServiceNow API request. Requires an r parameter.

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

  • description
  • severity
  • source
  • node
  • metricType
  • resource
  • metricName
  • messageKey
  • additionalInfo

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

Examples

Send critical events to ServiceNow
import "contrib/bonitoo-io/servicenow"
import "influxdata/influxdb/secrets"

username = secrets.get(key: "SERVICENOW_USERNAME")
password = secrets.get(key: "SERVICENOW_PASSWORD")

endpoint = servicenow.endpoint(
    url: "https://example-tenant.service-now.com/api/global/em/jsonv2",
    username: username,
    password: password
)

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

crit_events
    |> endpoint(mapFn: (r) => ({
        node: r.host,
        metricType: r._measurement,
        resource: r.instance,
        metricName: r._field,
        severity: "critical",
        additionalInfo: { "devId": r.dev_id }
      })
    )()

Package author and maintainer

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


Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.