arazzo: 1.0.1 info: title: Mux Monitoring Metric Breakdown summary: List the available monitoring dimensions, then break a chosen monitoring metric down by a dimension at a timestamp. description: >- Drives the Mux Data monitoring view used during incident response. The workflow lists the monitoring dimensions available for grouping, then breaks a chosen monitoring metric down by a dimension at a specific timestamp so you can pinpoint which segment of traffic is degraded at the moment of interest. Every step spells out its request inline so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: muxApi url: ../openapi/mux-openapi.yml type: openapi workflows: - workflowId: monitoring-breakdown summary: List monitoring dimensions, then break a monitoring metric down by a dimension. description: >- Lists monitoring dimensions, then breaks the chosen monitoring metric down by the chosen dimension. inputs: type: object required: - monitoringMetricId - dimension properties: monitoringMetricId: type: string description: The monitoring metric id to break down (e.g. current-concurrent-viewers, playback-failure-percentage). dimension: type: string description: The dimension the breakdown should be grouped by (e.g. country, cdn, operating_system). timestamp: type: integer description: Unix timestamp to limit results by. Defaults to the current time when omitted. steps: - stepId: listMonitoringDimensions description: >- List the monitoring dimensions available so the requested grouping dimension can be confirmed. operationId: list-monitoring-dimensions successCriteria: - condition: $statusCode == 200 outputs: dimensions: $response.body#/data - stepId: getMonitoringBreakdown description: >- Break the chosen monitoring metric down by the chosen dimension at the supplied timestamp. operationId: get-monitoring-breakdown parameters: - name: MONITORING_METRIC_ID in: path value: $inputs.monitoringMetricId - name: dimension in: query value: $inputs.dimension - name: timestamp in: query value: $inputs.timestamp successCriteria: - condition: $statusCode == 200 outputs: breakdown: $response.body#/data outputs: dimensions: $steps.listMonitoringDimensions.outputs.dimensions breakdown: $steps.getMonitoringBreakdown.outputs.breakdown