arazzo: 1.0.1
info:
title: Oracle Enterprise Manager Trace Incident Event
summary: Drill from an incident into its events and one event's full detail.
description: >-
Performs root-cause drill-down for an incident. Starting from an incident
identifier, the workflow reads the incident, lists the underlying monitoring
events that were correlated to form it, and then fetches the full detail of
the first event — exposing the metric group, metric column, and value that
raised the alert. A branch guards the event lookup so it only runs when the
incident actually carries events, chaining three real read operations.
version: 1.0.0
x-realizes-capability-ids:
- BC-600.30
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-600.30
capability_name: IT Service Management
spec: oracle-enterprise-manager-incidents-api-openapi.yml
confidence: 0.8
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: eventsApi
url: ../openapi/oracle-enterprise-manager-events-api-openapi.yml
type: openapi
- name: incidentsApi
url: ../openapi/oracle-enterprise-manager-incidents-api-openapi.yml
type: openapi
workflows:
- workflowId: trace-incident-event
summary: Read an incident, list its events, and fetch the first event's detail.
description: >-
Resolves an incident, retrieves its correlated events, and pulls the full
detail record for the first event to expose the originating metric.
inputs:
type: object
required:
- incidentId
properties:
incidentId:
type: string
description: Unique identifier of the incident to trace.
steps:
- stepId: getIncidentDetails
description: Retrieve the incident to confirm it exists before tracing events.
operationId: getIncident
parameters:
- name: incidentId
in: path
value: $inputs.incidentId
successCriteria:
- condition: $statusCode == 200
outputs:
incidentId: $response.body#/incidentId
eventCount: $response.body#/eventCount
- stepId: listIncidentEvents
description: List the monitoring events correlated into the incident.
operationId: getIncidentEvents
parameters:
- name: incidentId
in: path
value: $steps.getIncidentDetails.outputs.incidentId
successCriteria:
- condition: $statusCode == 200
outputs:
firstEventId: $response.body#/items/0/eventId
events: $response.body#/items
onSuccess:
- name: eventsExist
type: goto
stepId: getEventDetail
criteria:
- context: $response.body
condition: $.items.length > 0
type: jsonpath
- stepId: getEventDetail
description: >-
Fetch the full detail for the first correlated event, exposing the metric
group, column, and value that raised the alert.
operationId: getEvent
parameters:
- name: eventId
in: path
value: $steps.listIncidentEvents.outputs.firstEventId
successCriteria:
- condition: $statusCode == 200
outputs:
eventId: $response.body#/eventId
eventType: $response.body#/eventType
metricGroupName: $response.body#/metricGroupName
metricColumnName: $response.body#/metricColumnName
metricValue: $response.body#/metricValue
outputs:
incidentId: $steps.getIncidentDetails.outputs.incidentId
eventId: $steps.getEventDetail.outputs.eventId
metricGroupName: $steps.getEventDetail.outputs.metricGroupName
metricColumnName: $steps.getEventDetail.outputs.metricColumnName
metricValue: $steps.getEventDetail.outputs.metricValue
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.