Track all activity in your organization with Cycloid Events.

Events have to be configured at organization level. It require to choose one of the events backend (ElasticSearch, Aws Cloudwatch logs, ...).

Once events are configured for your organization, Cycloid automatically produces events like project creation, pipeline triggers and much more. If it's not enough, it is possible to use our API to create and send your own events.

Our API allows you to extend this feature and connect third party software like your monitoring. To give a concrete example for the field, one of our customer wrote a handler to receive alerts from his own monitoring system and send them to Cycloid events. That way you can correlate eventual alerts and changes or deployments made on your application.

To access to events, click on the Events section of the left panel:

Events

# Configuration

To first setup the event engine, go to the organization's list page and fill the various parameters, to allow Cycloid to manipulate events.

Event engin

# Usage

By default Cycloid already provides some events, but you can also extend it to your pipelines using the event resource that we wrote for this purpose. This resource allows you to build and send custom events from a pipeline.

Here is a full example of the configuration and the usage of Cycloid events in a pipeline :

resource_types:
- name: cycloid-events
  type: docker-image
  source:
    repository: cycloid/cycloid-events-resource
    tag: latest

resources:
# Configure global Cycloid events resource
- name: cycloid-events
  type: cycloid-events
  icon: calendar
  source:
    api_login: ((api_login))
    api_password: ((api_password))
    api_url: ((api_url))
    icon: fa-code-branch
    organization: ((customer))
    severity: info
    type: Custom
    tags:
      - key: project
        value: ((project))
      - key: env
        value: ((env))

- name: myJob
  plan:
    - do:
      ...
      # Send a specific Cycloid event in case of success or failure of my job
      on_success:
        do:
          - put: cycloid-events
            params:
              severity: info
              message: |
                       The project ((project)) on ((env)) environment have been deployed
              title: Success deployment of ((project)) on ((env)) environment
      on_failure:
        do:
          - put: cycloid-events
            params:
              severity: info
              message: |
                       Deployment fail for ((project)) on ((env))
              title: Fail deployment of ((project)) on ((env)) environment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

You can also send yourself events using the Cycloid's API. Feel free to have a look at the event resource implementation to guide you through the structure of the events, and possible limitations of fields.

See an event in the JSON format:

{
  "title": "title of the event",
  "message": "some useful message here",
  "icon": "<icon>",
  "tags": [
    { "key": "foo", "value": "bar" },
    { "key": "foo2", "value": "bar2" }
  ],
  "severity": "<severity>",
  "type": "<type>"
}
1
2
3
4
5
6
7
8
9
10
11

# Aws Cloudwatch log backend

Just like the logs, event engine relies on AWS Cloudwatch. It will look for a log group called $ORGANIZATION_NAME-$SOME_ID-events where events are stored in a JSON format.