Flux 0.108 (#2305)

* flux 0.108 changelog

* Flux VictorOps package (#2295)

* added flux victorops package, closes #2277

* added cloud version of victorops pkg

* Flux Zenoss pkg (#2292)

* added zenoss package, closes #2278

* added cloud duplicates for zenoss package

* updated zenoss pkg to address PR feedback

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Flux BigPanda package (#2301)

* added flux bigpanda package, closes #2279

* added cloud version of bigpanda package

* added information to bigpanda pkg about converting timestamps

* Update content/influxdb/v2.0/reference/flux/stdlib/contrib/bigpanda/_index.md

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* added 0.108 package links to flux changelog

* added flux 0.108.1 to flux changelog

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>
pull/2310/head
Scott Anderson 2021-03-17 08:51:41 -06:00 committed by GitHub
parent 9b85eeb07a
commit 37e28bd128
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 1058 additions and 0 deletions

View File

@ -0,0 +1,15 @@
---
title: Flux BigPanda package
list_title: BigPanda package
description: >
The Flux BigPanda package provides functions that send alerts to
[BigPanda](https://www.bigpanda.io/).
menu:
influxdb_cloud_ref:
name: BigPanda
parent: Contributed
weight: 202
influxdb/cloud/tags: [functions, bigpanda, package]
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,12 @@
---
title: bigpanda.endpoint() function
description: >
The `bigpanda.endpoint()` function sends alerts to BigPanda using data from input rows.
menu:
influxdb_cloud_ref:
name: bigpanda.endpoint
parent: BigPanda
weight: 202
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,12 @@
---
title: bigpanda.sendAlert() function
description: >
The `bigpanda.sendAlert()` function sends an alert to BigPanda.
menu:
influxdb_cloud_ref:
name: bigpanda.sendAlert
parent: BigPanda
weight: 202
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,12 @@
---
title: bigpanda.statusFromLevel() function
description: >
The `bigpanda.statusFromLevel()` function converts an alert level into a BigPanda status.
menu:
influxdb_cloud_ref:
name: bigpanda.statusFromLevel
parent: BigPanda
weight: 202
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,15 @@
---
title: Flux VictorOps package
list_title: VictorOps package
description: >
The Flux VictorOps package provides functions that send events to
[VictorOps](#).
menu:
influxdb_cloud_ref:
name: VictorOps
parent: Contributed
weight: 202
influxdb/cloud/tags: [functions, victorops, package]
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,12 @@
---
title: victorops.endpoint() function
description: >
The `victorops.endpoint()` function sends events to VictorOps using data from input rows.
menu:
influxdb_cloud_ref:
name: victorops.endpoint
parent: VictorOps
weight: 202
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,12 @@
---
title: victorops.event() function
description: >
The `victorops.event()` function sends an event to VictorOps.
menu:
influxdb_cloud_ref:
name: victorops.event
parent: VictorOps
weight: 202
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,15 @@
---
title: Flux Zenoss package
list_title: Zenoss package
description: >
The Flux Zenoss package provides functions that send events to
[Zenoss](https://www.zenoss.com/).
menu:
influxdb_cloud_ref:
name: Zenoss
parent: Contributed
weight: 202
influxdb/cloud/tags: [functions, zenoss, package]
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,12 @@
---
title: zenoss.endpoint() function
description: >
The `zenoss.endpoint()` function sends events to Zenoss using data from input rows.
menu:
influxdb_cloud_ref:
name: zenoss.endpoint
parent: Zenoss
weight: 202
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,12 @@
---
title: zenoss.event() function
description: >
The `zenoss.event()` function sends an event to Zenoss.
menu:
influxdb_cloud_ref:
name: zenoss.event
parent: Zenoss
weight: 202
---
{{< duplicate-oss >}}

View File

@ -0,0 +1,60 @@
---
title: Flux BigPanda package
list_title: BigPanda package
description: >
The Flux BigPanda package provides functions that send alerts to
[BigPanda](https://www.bigpanda.io/).
menu:
influxdb_2_0_ref:
name: BigPanda
parent: Contributed
weight: 202
influxdb/v2.0/tags: [functions, bigpanda, package]
---
The Flux BigPanda package provides functions that send alerts to
[BigPanda](https://www.bigpanda.io/).
Import the `contrib/rhajek/bigpanda` package:
```js
import "contrib/rhajek/bigpanda"
```
## Options
The BigPanda package provides the following options:
- [defaultURL](#defaulturl)
- [defaultTokenPrefix](#defaulttokenprefix)
```js
import "contrib/rhajek/bigpanda"
option bigpanda.defaultUrl = "https://api.bigpanda.io/data/v2/alerts"
option bigpanda.defaultTokenPrefix = "Bearer"
```
### defaultUrl
The default [BigPanda alerts API URL](https://docs.bigpanda.io/reference#alerts-how-it-works)
for functions in the BigPanda package.
Default is `https://api.bigpanda.io/data/v2/alerts`.
### defaultTokenPrefix
The default HTTP authentication schema to use when authenticating with BigPanda.
Default is `Bearer`.
## Functions
{{< children type="functions" show="pages" >}}
## Send alert timestamps to BigPanda
Sending alert timestamps to BigPanda is optional, but if you choose to send them,
convert timestamps to **epoch second timestamps**:
```js
//
|> map(fn: (r) => ({ r with secTime: int(v: r._time) / 1000000000 }))
```
{{% note %}}
#### Package author and maintainer
**Github:** [@rhajek](https://github.com/rhajek), [@bonitoo-io](https://github.com/bonitoo-io)
{{% /note %}}

View File

@ -0,0 +1,96 @@
---
title: bigpanda.endpoint() function
description: >
The `bigpanda.endpoint()` function sends alerts to BigPanda using data from input rows.
menu:
influxdb_2_0_ref:
name: bigpanda.endpoint
parent: BigPanda
weight: 202
---
The `bigpanda.endpoint()` function sends alerts to [BigPanda](https://www.bigpanda.io/)
using data from input rows.
_**Function type:** Output_
```js
import "contrib/rhajek/bigpanda"
bigpanda.endpoint(
url: "https://api.bigpanda.io/data/v2/alerts",
token: "my5uP3rS3cRe7t0k3n",
appKey: "example-app-key"
)
```
## Parameters
### url
BigPanda [alerts API URL](https://docs.bigpanda.io/reference#alerts-how-it-works).
Default is the value of the [`bigpanda.defaultURL` option](/influxdb/v2.0/reference/flux/stdlib/contrib/bigpanda/#defaulturl).
_**Data type:** String_
### token
({{< req >}})
BigPanda [API Authorization token (API key)](https://docs.bigpanda.io/docs/api-key-management).
_**Data type:** String_
### appKey
({{< req >}})
BigPanda [App Key](https://docs.bigpanda.io/reference#integrating-monitoring-systems).
## Usage
`bigpanda.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:
- `status`
- Additional [alert parameters](https://docs.bigpanda.io/reference#alert-object)
to send to the BigPanda alert API.
_For more information, see [`bigpanda.sendAlert()` parameters](/influxdb/v2.0/reference/flux/stdlib/contrib/bigpanda/sendalert/#parameters)._
## Examples
##### Send critical alerts to BigPanda
```js
import "contrib/rhajek/bigpanda"
import "influxdata/influxdb/secrets"
import "json"
token = secrets.get(key: "BIGPANDA_API_KEY")
endpoint = bigpanda.endpoint(
token: token,
appKey: "example-app-key"
)
crit_events = from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
crit_events
|> endpoint(mapFn: (r) => {
return { r with
status: "critical",
check: "critical-status-check",
description: "${r._field} is critical: ${string(v: r._value)}"
tags: json.encode(v: [{"name": "host", "value": r.host}]),
}
})()
```
{{% note %}}
#### Package author and maintainer
**Github:** [@rhajek](https://github.com/rhajek), [@bonitoo-io](https://github.com/bonitoo-io)
{{% /note %}}

View File

@ -0,0 +1,101 @@
---
title: bigpanda.sendAlert() function
description: >
The `bigpanda.sendAlert()` function sends an alert to BigPanda.
menu:
influxdb_2_0_ref:
name: bigpanda.sendAlert
parent: BigPanda
weight: 202
---
The `bigpanda.sendAlert()` function sends an alert to [BigPanda](https://www.bigpanda.io/).
```js
import "contrib/rhajek/bigpanda"
bigpanda.sendAlert(
url: "https://api.bigpanda.io/data/v2/alerts",
token: "my5uP3rS3cRe7t0k3n",
appKey: "example-app-key",
status: "critical",
rec: {},
)
```
## Parameters
### url
BigPanda [alerts API URL](https://docs.bigpanda.io/reference#alerts-how-it-works).
Default is the value of the [`bigpanda.defaultURL` option](/influxdb/v2.0/reference/flux/stdlib/contrib/bigpanda/#defaulturl).
_**Data type:** String_
### token
({{< req >}})
BigPanda [API Authorization token (API key)](https://docs.bigpanda.io/docs/api-key-management).
_**Data type:** String_
### appKey
({{< req >}})
BigPanda [App Key](https://docs.bigpanda.io/reference#integrating-monitoring-systems).
_**Data type:** String_
### status
({{< req >}})
BigPanda [alert status](https://docs.bigpanda.io/reference#alerts).
_**Data type:** String_
**Supported statuses:**
- `ok`
- `critical`
- `warning`
- `acknowledged`
### rec
({{< req >}})
Additional [alert parameters](https://docs.bigpanda.io/reference#alert-object)
to send to the BigPanda alert API.
_**Data type:** Record_
## Examples
##### Send the last reported value and status to BigPanda
```js
import "contrib/rhajek/bigpanda"
import "influxdata/influxdb/secrets"
import "json"
token = secrets.get(key: "BIGPANDA_API_KEY")
lastReported =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) =>
r._measurement == "example-measurement" and
r._field == "level"
)
|> last()
|> findRecord(fn: (key) => true, idx: 0)
bigpanda.sendAlert(
token: token,
appKey: "example-app-key",
status: bigpanda.statusFromLevel(level: "${lastReported.status}"),
rec: {
tags: json.encode(v: [{"name": "host", "value": "my-host"}]),
check: "my-check",
description: "${lastReported._field} is ${lastReported.status}: ${string(v: lastReported._value)}"
}
)
```
{{% note %}}
#### Package author and maintainer
**Github:** [@rhajek](https://github.com/rhajek), [@bonitoo-io](https://github.com/bonitoo-io)
{{% /note %}}

View File

@ -0,0 +1,46 @@
---
title: bigpanda.statusFromLevel() function
description: >
The `bigpanda.statusFromLevel()` function converts an alert level into a BigPanda status.
menu:
influxdb_2_0_ref:
name: bigpanda.statusFromLevel
parent: BigPanda
weight: 202
---
The `bigpanda.statusFromLevel()` function converts an alert level into a BigPanda status.
```js
import "contrib/rhajek/bigpanda"
bigpanda.statusFromLevel(level: "crit")
// Returns "critical"
```
## Parameters
### level
({{< req >}})
Alert level.
_**Data type:** String_
##### Supported alert levels
| Alert level | BigPanda status |
|:-----------:|:---------------:|
| crit | critical |
| warn | warning |
| info | ok |
| ok | ok |
_Default BigPanda status is `critical`._
{{% note %}}
#### Package author and maintainer
**Github:** [@alespour](https://github.com/alespour), [@bonitoo-io](https://github.com/bonitoo-io)
**InfluxDB Slack:** [@Ales Pour](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,45 @@
---
title: Flux VictorOps package
list_title: VictorOps package
description: >
The Flux VictorOps package provides functions that send events to
[VictorOps](#).
menu:
influxdb_2_0_ref:
name: VictorOps
parent: Contributed
weight: 202
influxdb/v2.0/tags: [functions, victorops, package]
---
The Flux VictorOps package provides functions that send events to
[VictorOps](https://victorops.com).
{{% note %}}
#### VictorOps is now Splunk On-Call
Splunk acquired VictorOps and VictorOps is now
[Splunk On-Call](https://www.splunk.com/en_us/investor-relations/acquisitions/splunk-on-call.html).
{{% /note %}}
Import the `contrib/bonitoo-io/victorops` package:
```js
import "contrib/bonitoo-io/victorops"
```
## Set up VictorOps
To send events to VictorOps with Flux:
1. [Enable the VictorOps REST Endpoint Integration](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/).
2. [Create a REST integration routing key](https://help.victorops.com/knowledge-base/routing-keys/).
3. [Create a VictorOps API key](https://help.victorops.com/knowledge-base/api/).
## Functions
{{< children type="functions" show="pages" >}}
{{% note %}}
#### Package author and maintainer
**Github:** [@alespour](https://github.com/alespour), [@bonitoo-io](https://github.com/bonitoo-io)
**InfluxDB Slack:** [@Ales Pour](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,99 @@
---
title: victorops.endpoint() function
description: >
The `victorops.endpoint()` function sends events to VictorOps using data from input rows.
menu:
influxdb_2_0_ref:
name: victorops.endpoint
parent: VictorOps
weight: 202
---
The `victorops.endpoint()` function sends events to VictorOps using data from input rows.
_**Function type:** Output_
{{% note %}}
#### VictorOps is now Splunk On-Call
Splunk acquired VictorOps and VictorOps is now
[Splunk On-Call](https://www.splunk.com/en_us/investor-relations/acquisitions/splunk-on-call.html).
{{% /note %}}
```js
import "contrib/bonitoo-io/victorops"
victorops.endpoint(
url: "https://alert.victorops.com/integrations/generic/00000000/alert${apiKey}/${routingKey}",
)
```
## Parameters
### url
({{< req >}})
[VictorOps REST endpoint integration URL](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/).
_**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](/influxdb/v2.0/reference/flux/stdlib/contrib/victorops/event/#parameters)._
## Examples
##### Send critical events to VictorOps
```js
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()
})
)()
```
{{% note %}}
#### Package author and maintainer
**Github:** [@alespour](https://github.com/alespour), [@bonitoo-io](https://github.com/bonitoo-io)
**InfluxDB Slack:** [@Ales Pour](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,125 @@
---
title: victorops.event() function
description: >
The `victorops.event()` function sends an event to VictorOps.
menu:
influxdb_2_0_ref:
name: victorops.event
parent: VictorOps
weight: 202
---
The `victorops.event()` function sends an event to [VictorOps](https://www.victorops.com/).
{{% note %}}
#### VictorOps is now Splunk On-Call
Splunk acquired VictorOps and VictorOps is now
[Splunk On-Call](https://www.splunk.com/en_us/investor-relations/acquisitions/splunk-on-call.html).
{{% /note %}}
```js
import "contrib/bonitoo-io/victorops"
victorops.event(
url: "https://alert.victorops.com/integrations/generic/00000000/alert/${api_key}/${routing_key}",
monitoringTool: "",
messageType: "CRITICAL",
entityID: "",
entityDisplayName: "",
stateMessage: "",
timestamp: now()
)
```
## Parameters
### url
({{< req >}})
[VictorOps REST endpoint integration URL](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/).
_**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._
### monitoringTool
Monitoring agent name.
Default is `""`.
_**Data type:** String_
### messageType
({{< req >}})
VictorOps [message type](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/#recommended-rest-endpoint-integration-fields)
(alert behavior).
_**Data type:** String_
**Valid values:**
- `CRITICAL`
- `WARNING`
- `INFO`
### entityID
[Incident ID](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/#recommended-rest-endpoint-integration-fields).
Default is `""`.
_**Data type:** String_
### entityDisplayName
[Incident display name or summary](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/#recommended-rest-endpoint-integration-fields).
Default is `""`.
_**Data type:** String_
### stateMessage
[Verbose incident message](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/#recommended-rest-endpoint-integration-fields).
Default is `""`.
_**Data type:** String_
### timestamp
[Incident start time](https://help.victorops.com/knowledge-base/rest-endpoint-integration-guide/#recommended-rest-endpoint-integration-fields).
Default is `now()`.
_**Data type:** Time_
## Examples
##### Send the last reported value and incident type to VictorOps
```js
import "contrib/bonitoo-io/victorops"
import "influxdata/influxdb/secrets"
apiKey = secrets.get(key: "VICTOROPS_API_KEY")
routingKey = secrets.get(key: "VICTOROPS_ROUTING_KEY")
lastReported =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_idle")
|> last()
|> findRecord(fn: (key) => true, idx: 0)
victorops.event(
url: "https://alert.victorops.com/integrations/generic/00000000/alert/${apiKey}/${routingKey}",
messageType:
if lastReported._value < 1.0 then "CRITICAL"
else if lastReported._value < 5.0 then "WARNING"
else "INFO",
entityID: "example-alert-1",
entityDisplayName: "Example Alert 1",
stateMessage: "Last reported cpu_idle was ${string(v: r._value)}."
)
```
{{% note %}}
#### Package author and maintainer
**Github:** [@alespour](https://github.com/alespour), [@bonitoo-io](https://github.com/bonitoo-io)
**InfluxDB Slack:** [@Ales Pour](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,31 @@
---
title: Flux Zenoss package
list_title: Zenoss package
description: >
The Flux Zenoss package provides functions that send events to
[Zenoss](https://www.zenoss.com/).
menu:
influxdb_2_0_ref:
name: Zenoss
parent: Contributed
weight: 202
influxdb/v2.0/tags: [functions, zenoss, package]
---
The Flux Zenoss package provides functions that send events to
[Zenoss](https://www.zenoss.com/).
Import the `contrib/bonitoo-io/zenoss` package:
```js
import "contrib/bonitoo-io/zenoss"
```
## Functions
{{< children type="functions" show="pages" >}}
{{% note %}}
#### Package author and maintainer
**Github:** [@alespour](https://github.com/alespour), [@bonitoo-io](https://github.com/bonitoo-io)
**InfluxDB Slack:** [@Ales Pour](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,138 @@
---
title: zenoss.endpoint() function
description: >
The `zenoss.endpoint()` function sends events to Zenoss using data from input rows.
menu:
influxdb_2_0_ref:
name: zenoss.endpoint
parent: Zenoss
weight: 202
---
The `zenoss.endpoint()` function sends events to Zenoss using data from input rows.
_**Function type:** Output_
```js
import "contrib/bonitoo-io/zenoss"
zenoss.endpoint(
url: "https://example.zenoss.io:8080/zport/dmd/evconsole_router",
username: "example-user",
password: "example-password",
action: "EventsRouter",
method: "add_event",
type: "rpc",
tid: 1
)
```
## Parameters
### url
({{< req >}})
Zenoss [router endpoint URL](https://help.zenoss.com/zsd/RM/configuring-resource-manager/enabling-access-to-browser-interfaces/creating-and-changing-public-endpoints).
_**Data type:** String_
### username
({{< req >}})
Zenoss username to use for HTTP BASIC authentication.
Default is `""` (no authentication).
_**Data type:** String_
### password
({{< req >}})
Zenoss password to use for HTTP BASIC authentication.
Default is `""` (no authentication).
_**Data type:** String_
### action
Zenoss [router name](https://help.zenoss.com/dev/collection-zone-and-resource-manager-apis/anatomy-of-an-api-request#AnatomyofanAPIrequest-RouterURL).
Default is `"EventsRouter"`.
_**Data type:** String_
### method
[EventsRouter method](https://help.zenoss.com/dev/collection-zone-and-resource-manager-apis/codebase/routers/router-reference/eventsrouter).
Default is `"add_event"`.
_**Data type:** String_
### type
Event type.
Default is `"rpc"`.
_**Data type:** String_
### tid
Temporary request transaction ID.
Default is `1`.
_**Data type:** Integer_
## Usage
`zenoss.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:
- `summary`
- `device`
- `component`
- `severity`
- `eventClass`
- `eventClassKey`
- `collector`
- `message`
_For more information, see [`zenoss.event()` parameters](/influxdb/v2.0/reference/flux/stdlib/contrib/zenoss/event/#parameters)._
## Examples
##### Send critical events to Zenoss
```js
import "contrib/bonitoo-io/zenoss"
import "influxdata/influxdb/secrets"
url = "https://tenant.zenoss.io:8080/zport/dmd/evconsole_router"
username = secrets.get(key: "ZENOSS_USERNAME")
password = secrets.get(key: "ZENOSS_PASSWORD")
endpoint = zenoss.endpoint(
url: url,
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) => ({
summary: "Critical event for ${r.host}",
device: r.deviceID,
component: r.host,
severity: "Critical",
eventClass: "/App",
eventClassKey: "",
collector: "",
message: "${r.host} is in a critical state.",
})
)()
```
{{% note %}}
#### Package author and maintainer
**Github:** [@alespour](https://github.com/alespour), [@bonitoo-io](https://github.com/bonitoo-io)
**InfluxDB Slack:** [@Ales Pour](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,172 @@
---
title: zenoss.event() function
description: >
The `zenoss.event()` function sends an event to Zenoss.
menu:
influxdb_2_0_ref:
name: zenoss.event
parent: Zenoss
weight: 202
---
The `zenoss.event()` function sends an event to [Zenoss](https://www.zenoss.com/).
```js
import "contrib/bonitoo-io/zenoss"
zenoss.event(
url: "https://example.zenoss.io:8080/zport/dmd/evconsole_router",
username: "example-user",
password: "example-password",
action: "EventsRouter",
method: "add_event",
type: "rpc",
tid: 1,
summary: "",
device: "",
component: "",
severity: "Critical",
eventClass: "",
eventClassKey: "",
collector: "",
message: ""
)
```
## Parameters
### url
({{< req >}})
Zenoss [router endpoint URL](https://help.zenoss.com/zsd/RM/configuring-resource-manager/enabling-access-to-browser-interfaces/creating-and-changing-public-endpoints).
_**Data type:** String_
### username
({{< req >}})
Zenoss username to use for HTTP BASIC authentication.
Default is `""` (no authentication).
_**Data type:** String_
### password
({{< req >}})
Zenoss password to use for HTTP BASIC authentication.
Default is `""` (no authentication).
_**Data type:** String_
### action
Zenoss [router name](https://help.zenoss.com/dev/collection-zone-and-resource-manager-apis/anatomy-of-an-api-request#AnatomyofanAPIrequest-RouterURL).
Default is `"EventsRouter"`.
_**Data type:** String_
### method
[EventsRouter method](https://help.zenoss.com/dev/collection-zone-and-resource-manager-apis/codebase/routers/router-reference/eventsrouter).
Default is `"add_event"`.
_**Data type:** String_
### type
Event type.
Default is `"rpc"`.
_**Data type:** String_
### tid
Temporary request transaction ID.
Default is `1`.
_**Data type:** Integer_
### summary
Event summary.
Default is `""`.
_**Data type:** String_
### device
Related device.
Default is `""`.
_**Data type:** String_
### component
Related component.
Default is `""`.
_**Data type:** String_
### severity
({{< req >}})
[Event severity level](https://help.zenoss.com/zsd/RM/administering-resource-manager/event-management/event-severity-levels).
_**Data type:** String_
**Supported values:**
- Critical
- Warning
- Info
- Clear
### eventClass
[Event class](https://help.zenoss.com/zsd/RM/administering-resource-manager/event-management/understanding-event-classes).
Default is `""`.
_**Data type:** String_
### eventClassKey
Event [class key](https://help.zenoss.com/zsd/RM/administering-resource-manager/event-management/event-fields).
Default is `""`.
_**Data type:** String_
### collector
Zenoss [collector](https://help.zenoss.com/zsd/RM/administering-resource-manager/event-management/event-fields).
Default is `""`.
_**Data type:** String_
### message
Related message.
Default is `""`.
_**Data type:** String_
## Examples
##### Send the last reported value and severity to Zenoss
```js
import "contrib/bonitoo-io/zenoss"
import "influxdata/influxdb/secrets"
username = secrets.get(key: "ZENOSS_USERNAME")
password = secrets.get(key: "ZENOSS_PASSWORD")
lastReported =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_idle")
|> last()
|> findRecord(fn: (key) => true, idx: 0)
zenoss.event(
url: "https://tenant.zenoss.io:8080/zport/dmd/evconsole_router",
username: username,
username: password,
device: lastReported.host,
component: "CPU",
eventClass: "/App",
severity:
if lastReported._value < 1.0 then "Critical"
else if lastReported._value < 5.0 then "Warning"
else if lastReported._value < 20.0 then "Info"
else "Clear"
)
```
{{% note %}}
#### Package author and maintainer
**Github:** [@alespour](https://github.com/alespour), [@bonitoo-io](https://github.com/bonitoo-io)
**InfluxDB Slack:** [@Ales Pour](https://influxdata.com/slack)
{{% /note %}}

View File

@ -8,6 +8,22 @@ menu:
name: Flux
---
## v0.108.1 [2021-03-15]
- _Internal code cleanup._
---
## v0.108.0 [2021-03-15]
### Features
- Add [BigPanda notification support](/influxdb/v2.0/reference/flux/stdlib/contrib/bigpanda/).
- Add [Zenoss notifications support](/influxdb/v2.0/reference/flux/stdlib/contrib/zenoss/).
- Add [VictorOps notifications support](/influxdb/v2.0/reference/flux/stdlib/contrib/victorops/).
### Bug fixes
- Classify "Option not found error" as internal.
- Remove `as_user` parameter from `slack.message` payload.
## v0.107.0 [2021-03-09]
### Features