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"
}
}
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 ¶
- eventName: required, cannot be empty.
- message: required, cannot be empty.
- status: not required, default "firing", must be one of "firing", "resolved", "acknowledged", "suppressed" or "pending"
- 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",
...
}
Level Severity Map ¶
{
"0": "low"
"1": "low",
"2": "info",
"3": "waring",
"4": "high",
"5": "critical"
}
Time Related Fields ¶
System Default Time Related Fields ¶
- lastReceived: last receiving time.
- firingStartTime: first firing alert receiving time, if the last receive alert status is not firing, the field will be null.
- firingCounter: the total number of events received.
- startedAt: the first receive alert time.
Additional Time Related Fields ¶
- lastAlertTime:firing ts (no change if is resolved event )
- firstAlertTime:first firing ts (never overwrite)
- alertStartTime: firing ts (set null if is resolved event)
- lastResolvedTime: last ‘firing' to 'resolved' ts
- 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.