Track all activity in your organization with Cycloid Events.

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

# 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

# Colors

User generated events may have custom colors, as you can see in the examples below, but there are some restrictions.

  • The available colors are the ones defined by the keyword in the CSS 2 specs: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, and yellow.
  • RGB values are not accepted.
  • The colors red, orange, and green, are reserved respectively for the following severity: Crit and Err, Warn, and Info. If one of these three colors is specified and does not match the severity it will be ignored to not create confusing situation, such as a green colored error event.
  • If a color is specified but not in the allowed list, it will default to the color for the severity: red, orange or green, but not to the default cycloid color scheme. This allows to easily identify erroneous color specification.

An event without a color specified or ignored will fall back to the default color scheme.

For example here are some events:

{
  "title": "Colorful event",
  "message": "So many colors.",
  "tags": [
    { "key": "foo", "value": "bar" },
    { "key": "foo2", "value": "bar2" }
  ],
  "severity": "Info",
  "type": "Custom",
  "color": "fucsia"
}
1
2
3
4
5
6
7
8
9
10
11
{
  "title": "Not so colorful event",
  "message": "This color will be ignored, severity Info cannot be red. Falling bach to default schema.",
  "tags": [
    { "key": "foo", "value": "bar" },
    { "key": "foo2", "value": "bar2" }
  ],
  "type": "Custom",
  "severity": "Info",
  "color": "red"
}
1
2
3
4
5
6
7
8
9
10
11
{
  "title": "Another uncolorful event",
  "message": "The color name is not in the CSS2 list. Fallback to the severiry default green, but not the dafault schema becase a color has been specified.",
  "tags": [
    { "key": "foo", "value": "bar" },
    { "key": "foo2", "value": "bar2" }
  ],
  "type": "Custom",
  "severity": "Info",
  "color": "CornflowerBlue"
}
1
2
3
4
5
6
7
8
9
10
11

Creating the above events will have the following result, note that the events are displayed in revers order of creation with the most recent on top:

Pinned version pipeline