Cross-Provider Workflow

Highlight.io Error Logs to GitHub Issue

Version 1.0.0

Export error logs to Highlight.io via OTLP, then open a GitHub tracking issue.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

highlight-io github

Workflows

export-error-and-track
Export error logs to Highlight.io, then open a GitHub issue.
Sends an error log batch to Highlight.io over OTLP and creates a GitHub issue to track remediation of the reported error.
2 steps inputs: errorMessage, owner, repo, serviceName outputs: exportStatus, issueUrl
1
export-logs
$sourceDescriptions.highlightOtlpLogsApi.exportLogs
Export an error log batch to Highlight.io over the OTLP logs protocol.
2
open-issue
$sourceDescriptions.githubRepoIssuesApi.createAnIssue
Open a GitHub issue to track the exported error.

Source API Descriptions

Arazzo Workflow Specification

sec-highlight-error-logs-to-github-issue.yml Raw ↑
arazzo: 1.0.1
info:
  title: Highlight.io Error Logs to GitHub Issue
  summary: Export error logs to Highlight.io via OTLP, then open a GitHub tracking issue.
  description: >-
    An observability workflow that ingests application error logs into Highlight.io over the
    OpenTelemetry logs protocol, then opens a GitHub issue so the engineering team can
    triage and fix the underlying error. Demonstrates orchestrating an error and session
    observability platform with a code host in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: highlightOtlpLogsApi
    url: https://raw.githubusercontent.com/api-evangelist/highlight-io/refs/heads/main/openapi/highlight-otlp-logs-api-openapi.yml
    type: openapi
  - name: githubRepoIssuesApi
    url: https://raw.githubusercontent.com/api-evangelist/github/refs/heads/main/openapi/github-repo-issues-api-openapi.yml
    type: openapi
workflows:
  - workflowId: export-error-and-track
    summary: Export error logs to Highlight.io, then open a GitHub issue.
    description: >-
      Sends an error log batch to Highlight.io over OTLP and creates a GitHub issue to track
      remediation of the reported error.
    inputs:
      type: object
      properties:
        serviceName:
          type: string
        errorMessage:
          type: string
        owner:
          type: string
        repo:
          type: string
    steps:
      - stepId: export-logs
        description: Export an error log batch to Highlight.io over the OTLP logs protocol.
        operationId: $sourceDescriptions.highlightOtlpLogsApi.exportLogs
        requestBody:
          contentType: application/json
          payload:
            resourceLogs:
              - resource:
                  attributes:
                    - key: service.name
                      value:
                        stringValue: $inputs.serviceName
                scopeLogs:
                  - logRecords:
                      - severityText: ERROR
                        body:
                          stringValue: $inputs.errorMessage
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          exportStatus: $statusCode
      - stepId: open-issue
        description: Open a GitHub issue to track the exported error.
        operationId: $sourceDescriptions.githubRepoIssuesApi.createAnIssue
        parameters:
          - name: owner
            in: path
            value: $inputs.owner
          - name: repo
            in: path
            value: $inputs.repo
        requestBody:
          contentType: application/json
          payload:
            title: Highlight.io error captured in production
            body: An error log was ingested into Highlight.io and needs engineering triage.
            labels:
              - bug
              - observability
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          issueNumber: $response.body#/number
          issueUrl: $response.body#/html_url
    outputs:
      exportStatus: $steps.export-logs.outputs.exportStatus
      issueUrl: $steps.open-issue.outputs.issueUrl