* added flux 0.84 release notes

* Flux Opsgenie package (#1431)

* added the flux Opsgenie package

* minor update to opsgenie pkg description
pull/1446/head
Scott Anderson 2020-09-14 13:03:43 -06:00 committed by GitHub
parent 97d1bc1aad
commit 1a3ce7095d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 294 additions and 0 deletions

View File

@ -0,0 +1,32 @@
---
title: Flux Opsgenie package
list_title: Opsgenie package
description: >
The Flux Opsgenie package provides functions that send alerts to
[Atlassian Opsgenie](https://www.atlassian.com/software/opsgenie) using the
[Opsgenie v2 API](https://docs.opsgenie.com/docs/alert-api#create-alert).
Import the `contrib/sranka/opsgenie` package.
menu:
influxdb_2_0_ref:
name: Opsgenie
parent: Contributed
weight: 202
influxdb/v2.0/tags: [functions, opsgenie, package]
---
The Flux Opsgenie package provides functions that send alerts to
[Atlassian Opsgenie](https://www.atlassian.com/software/opsgenie) using the
[Opsgenie v2 API](https://docs.opsgenie.com/docs/alert-api#create-alert).
Import the `contrib/sranka/opsgenie` package:
```js
import "contrib/sranka/opsgenie"
```
{{< children type="functions" show="pages" >}}
{{% note %}}
#### Package author and maintainer
**Github:** [@sranka](https://github.com/sranka)
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,104 @@
---
title: opsgenie.endpoint() function
description: >
The `opsgenie.endpoint()` function sends an alert message to Opsgenie using data from table rows.
menu:
influxdb_2_0_ref:
name: opsgenie.endpoint
parent: Opsgenie
weight: 202
---
The `opsgenie.endpoint()` function sends an alert message to Opsgenie using data from table rows.
_**Function type:** Output_
```js
import "contrib/sranka/opsgenie"
opsgenie.endpoint(
url: "https://api.opsgenie.com/v2/alerts",
apiKey: "YoUrSup3R5ecR37AuThK3y",
entity: "example-entity"
)
```
## Parameters
### url
Opsgenie API URL.
Defaults to `https://api.opsgenie.com/v2/alerts`.
_**Data type:** String_
### apiKey
<span class="req">Required</span>
Opsgenie API authorization key.
_**Data type:** String_
### entity
Alert entity used to specify the alert domain.
_**Data type:** String_
## Usage
`opsgenie.endpoint` is a factory function that outputs another function.
The output function requires a `mapFn` parameter.
### mapFn
A function that builds the record used to generate the POST request.
Requires an `r` parameter.
_**Data type:** Function_
`mapFn` accepts a table row (`r`) and returns a record that must include the
following fields:
- `message`
- `alias`
- `description`
- `priority`
- `responders`
- `tags`
- `actions`
- `details`
- `visibleTo`
_For more information, see [`opsgenie.sendAlert()`](/influxdb/v2.0/reference/flux/stdlib/contrib/opsgenie/sendalert/)._
## Examples
##### Send critical statuses to Opsgenie
```js
import "influxdata/influxdb/secrets"
import "contrib/sranka/opsgenie"
apiKey = secrets.get(key: "OPSGENIE_APIKEY")
endpoint = opsgenie.endpoint(apiKey: apiKey)
crit_statuses = from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
crit_statuses
|> endpoint(mapFn: (r) => ({
message: "Great Scott!- Disk usage is: ${r.status}.",
alias: "disk-usage-${r.status}",
description: "",
priority: "P3",
responders: ["user:john@example.com", "team:itcrowd"],
tags: [],
entity: "my-lab",
actions: [],
details: "{}",
visibleTo: []
})
)()
```
{{% note %}}
#### Package author and maintainer
**Github:** [@sranka](https://github.com/sranka)
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
{{% /note %}}

View File

@ -0,0 +1,142 @@
---
title: opsgenie.sendAlert() function
description: >
The `opsgenie.sendAlert()` function sends an alert message to Opsgenie.
menu:
influxdb_2_0_ref:
name: opsgenie.sendAlert
parent: Opsgenie
weight: 202
---
The `opsgenie.sendAlert()` function sends an alert message to Opsgenie.
_**Function type:** Output_
```js
import "contrib/sranka/opsgenie"
opsgenie.sendAlert(
url: "https://api.opsgenie.com/v2/alerts",
apiKey: "YoUrSup3R5ecR37AuThK3y",
message: "Example message",
alias: "Example alias",
description: "Example description",
priority: "P3",
responders: ["user:john@example.com", "team:itcrowd"],
tags: ["tag1", "tag2"],
entity: "example-entity",
actions: ["action1", "action2"],
details: "{}",
visibleTo: []
)
```
## Parameters
### url
Opsgenie API URL.
Defaults to `https://api.opsgenie.com/v2/alerts`.
_**Data type:** String_
### apiKey
<span class="req">Required</span>
Opsgenie API authorization key.
_**Data type:** String_
### message
<span class="req">Required</span>
Alert message text.
130 characters or less.
_**Data type:** String_
### alias
Opsgenie alias usee to de-deduplicate alerts.
250 characters or less.
Defaults to [message](#message).
_**Data type:** String_
### description
Alert description.
15000 characters or less.
_**Data type:** String_
### priority
Opsgenie [alert priority](https://docs.opsgenie.com/docs/alert-priority-settings).
Valid values include:
- `P1`
- `P2`
- `P3` _(default)_
- `P4`
- `P5`
_**Data type:** String_
### responders
List of responder teams or users.
Use the `user:` prefix for users and `teams:` prefix for teams.
_**Data type:** Array of strings_
### tags
Alert tags.
_**Data type:** Array of strings_
### entity
Alert entity used to specify the alert domain.
_**Data type:** String_
### actions
List of actions available for the alert.
_**Data type:** Array of strings_
### details
Additional alert details.
Must be a JSON-encoded map of key-value string pairs.
_**Data type:** String_
### visibleTo
List of teams and users the alert will be visible to without sending notifications.
Use the `user:` prefix for users and `teams:` prefix for teams.
_**Data type:** Array of strings_
## Examples
##### Send the last reported status to a Opsgenie
```js
import "influxdata/influxdb/secrets"
import "contrib/sranka/opsgenie"
apiKey = secrets.get(key: "OPSGENIE_APIKEY")
lastReported =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses")
|> last()
|> findRecord(fn: (key) => true, idx: 0)
opsgenie.sendAlert(
apiKey: apiKey,
message: "Disk usage is: ${lastReported.status}.",
alias: "example-disk-usage",
responders: ["user:john@example.com", "team:itcrowd"]
)
```
{{% note %}}
#### Package author and maintainer
**Github:** [@sranka](https://github.com/sranka)
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
{{% /note %}}

View File

@ -14,6 +14,22 @@ Though newer versions of Flux may be available, they will not be included with
InfluxDB until the next InfluxDB v2.0 release._
{{% /note %}}
## v0.84.0 [2020-09-09]
### Breaking changes
- Remove time-column parameters from `range()` function and update type signature.
### Features
- Add [Opsgenie package](/influxdb/v2.0/reference/flux/stdlib/contrib/opsgenie/).
- Implement [`lastSuccess()`](/influxdb/v2.0/reference/flux/stdlib/influxdb-tasks/lastsuccess/) in the `tasks` package.
- Support duration values in `aggregateWindow`.
- Update Apache Arrow to 1.0.1.
### Bug fixes
- Ensure meta columns are never part of group key.
---
## v0.83.1 [2020-09-02]
### Bug fixes