# README
Datadog Event Resource
Fetch or emit events to Datadog.
Source Configuration
-
application_key
: Required. The application key to use when accessing Datadog. -
api_key
: Required. The api key to use when accessing Datadog. -
filter
: Optional. Regexp to filter events by title when checking. -
datadog_host
: Optional. Datadog host url to switch from US to Europe datacenter, default to US.
Behavior
check
: Listen for events in the event stream from the last 32 days.
Detects new events that have been published to the Datadog event stream within the last 32 days.
in
: Fetch an event
Places the following files in the destination:
-
event.json
: The event fetched, as JSON. Example:{ "date_happened": 1346449298, "id": 1378859526682864843, "priority": "normal", "tags": [ "environment:test" ], "text": "Oh boy!", "title": "Did you hear the news today?", "url": "https://app.datadoghq.com/event/jump_to?event_id=1378859526682864843" }
-
version
: The ID of the event fetched.
Parameters
None.
out
: Emit an event to Datadog
Emits an event based on the static configuration defined in your parameters. Based on the Datadog API
Parameters
Required
title
: The event title. Limited to 100 characters.
One of the following:
-
text
: Static text for the body of the event. Environment variables can be used here to show the build metadata. Please refer to the Concourse documentation for a list of allowed variables. -
text_file
Path to a file containing text for the body of the event. This allows the message to be generated by a previous task step in the Concourse job.
Limited to 4000 characters. The text supports markdown.
Optional
-
priority
: The priority of the event ('normal' or 'low'). -
host
: Host name to associate with the event. -
tags
: A list of tags to apply to the event. -
alert_type
: "error", "warning", "info" or "success". -
aggregation_key
: An arbitrary string to use for aggregation, max length of 100 characters. If you specify a key, all events using that key will be grouped together in the Event Stream. -
source_type_name
: The type of event being posted. Options: nagios, hudson, jenkins, user, my apps, feed, chef, puppet, git, bitbucket, fabric, capistrano
Example Configuration
Resource
resource_types:
- name: datadog-event
type: docker-image
source:
repository: concourse/datadog-event-resource
resources:
- name: datadog-event
type: datadog-event
source:
api_key: API-KEY
application_key: APPLICATION-KEY
filter: "event-.*-regexp"
Plan
- get: datadog-event
- put: datadog-event
params:
title: Did you hear the news today?
text: Oh boy!
priority: normal
tags:
- environment:test
alert_type: info
Development
Prerequisites
- golang is required - version 1.12.x is tested; earlier versions may also work.
- docker is required - version 18.09.x is tested; earlier versions may also work.
Running the tests
The tests have been embedded with the Dockerfile
; ensuring that the testing
environment is consistent across any docker
enabled platform. When the docker
image builds, the test are run inside the docker container, on failure they
will stop the build.
Run the tests with the following command:
docker build -t datadog-event-resource --build-arg base_image=concourse/resource-types-base-image-static .
Contributing
Please make all pull requests to the master
branch and ensure tests pass
locally.
Caveats
Unless you are planning on using datadog events for triggering jobs, make sure to disable automatic resource checking, like so:
resources:
- name: datadog-event
type: datadog-event
check_every: never
source:
api_key: API-KEY
application_key: APPLICATION-KEY
And in case you do plan on using datadog events to trigger jobs, make sure you're using event filtering:
resources:
- name: datadog-event
type: datadog-event
source:
api_key: API-KEY
application_key: APPLICATION-KEY
filter: "event-.*-regexp"
Otherwise you're running a risk of bloating the concourse database if the volume of events going through datadog is high enough.