Skip to content

EMSv1 Formatted API Provider

EMSv1 Provider is a backward compatibility layer designed to receive events data in the legacy EMS 1.0 API format from the old EMS system (csgems.webex.com). This provider ensures seamless migration and continued operation for existing integrations that were built against the original EMS API format, requiring no installation or configuration changes for legacy clients.

Request API

/alerts/event/emsv1

Request Method

POST

Request Body

single event

{
    "eventName": "EMSv1ProviderTest",            # required, corresponding to the "name" field of the alert.
    "ts": 1749448678,                            # not required, default current time.
    "level": 1,                                  # required, corresponding to the "severity" field of the alert. 
    "status": "firing",                          # not required, default "firing".
    "message": "EMSv1ProviderTest",              # required, corresponding to the "description" field of the alert.
    "eventSource": {
        "hostname": "EMSv1ProviderTest",        
        "hostAddress": "10.224.44.243",
        "service": "test"
    },
    "dataParam": {
        "deploymentName": "JFK01",
        "moreDetails": "Just Test"
    }
}
Note: Do not include the "id" field in the payload.

bulk events

{
    "events": [
        {
            "eventName": "EMSv1ProviderTest",
            "ts": 1749448678,
            "level": 1,
            "status": "firing",
            "message": "EMSv1ProviderTest",
            "eventSource": {
                "hostname": "EMSv1ProviderTest",
                "hostAddress": "10.224.44.243",
                "service": "test"
            },
            "dataParam": {
                "deploymentName": "JFK01",
                "moreDetails": "Just Test"
            }
        },
        {
            "eventName": "EMSv1ProviderTest2",
            "ts": 1749448678,
            "level": 1,
            "status": "firing",
            "message": "EMSv1ProviderTest2",
            "eventSource": {
                "hostname": "EMSv1ProviderTest2",
                "hostAddress": "10.224.44.244",
                "service": "test"
            },
            "dataParam": {
                "deploymentName": "JFK01",
                "moreDetails": "Just Test"
            }
        }
    ]
}

Body validation

  1. eventName: required, cannot be empty.
  2. message: required, cannot be empty.
  3. status: not required, default "firing", must be one of "firing", "resolved", "acknowledged", "suppressed" or "pending"
  4. level: required, must be one of "0", "1", "2", "3", "4" or "5". If level is 0, will set status to "resolved" no matter what status pass in.

Additional Fields

You can add the additional fields to "eventSource" field or "dataParam" field. e.g.

"eventSource": {
                "hostname": "EMSv1ProviderTest2",
                "hostAddress": "10.224.44.244",
                "service": "test",
                "group": "test",
                "cluster": "test"
                ...
            }

"dataParam": {
                "deploymentName": "JFK01",
                "moreDetails": "Just Test",
                "cluster": "test",
                ...
}
Note: You can add the additional fields anywhere in the request body, but to avoid the conflict of some default fields, we highly recommend you add additional fields as in the above sample.

Level Severity Map

{
    "0": "low"
    "1": "low",
    "2": "info",
    "3": "waring",
    "4": "high",
    "5": "critical"
}
  1. lastReceived: last receiving time.
  2. firingStartTime: first firing alert receiving time, if the last receive alert status is not firing, the field will be null.
  3. firingCounter: the total number of events received.
  4. startedAt: the first receive alert time.
  1. lastAlertTime:firing ts (no change if is resolved event )
  2. firstAlertTime:first firing ts (never overwrite)
  3. alertStartTime: firing ts (set null if is resolved event)
  4. lastResolvedTime: last ‘firing' to 'resolved' ts
  5. firingCount - Set to 1 when first event comes - Increased whenever an event moves from resolved to firing

Default Deduplicate Rule

eventSource.hostname + eventName If there is no eventSource.hostname field, it only uses eventName field for deduplication.