Set up Tracing on GitHub Actions Workflows
The selected Datadog site () is not supported.
Overview
GitHub Actions is an automation tool that allows you to build, test, and deploy your code in GitHub. Create workflows that automate every step of your development process, streamlining software updates and enhancing code quality with CI/CD features integrated into your repositories.
Set up tracing in GitHub Actions to track the execution of your workflows, identify performance bottlenecks, troubleshoot operational issues, and optimize your deployment processes.
Compatibility
Pipeline Visibility | Platform | Definition |
---|
Running pipelines | Running pipelines | View pipeline executions that are running. Queued or waiting pipelines show with status “Running” on Datadog. |
Partial retries | Partial pipelines | View partially retried pipeline executions. |
Logs correlation | Logs correlation | Correlate pipeline and job spans to logs and enable job log collection. |
Infrastructure metric correlation | Infrastructure metric correlation | Correlate jobs to infrastructure host metrics for GitHub jobs. |
Custom tags and measures at runtime | Custom tags and measures at runtime | Configure custom tags and measures at runtime. |
Queue time | Queue time | View the amount of time pipeline jobs sit in the queue before processing. |
Approval wait time | Approval wait time | View the amount of time workflow runs and workflow jobs wait for manual approvals. |
Custom spans | Custom spans | Configure custom spans for your pipelines. |
The following GitHub versions are supported:
- GitHub.com (SaaS)
- GitHub Enterprise Server (GHES) 3.5.0 or later
The GitHub Actions integration uses a private GitHub App to collect workflow information. If you already have an app, you can skip to the next section.
- Go to the GitHub integration tile.
- Click + Create GitHub App.
- Configure the integration for a personal or organization account and enter the name of the GitHub organization.
- Select the Datadog features you want to enable for the GitHub App.
- In the Edit Permissions section, grant
Actions: Read Only
access. - Click Create App in GitHub to finish the app creation process on GitHub.
- Give the app a name, for example,
Datadog CI Visibility
. - Click Install GitHub App and follow the instructions on GitHub.
After the GitHub App is created and installed, enable CI Visibility on the accounts and/or repositories you want visibility into.
- In Datadog, navigate to Software Delivery > CI Visibility > Add a Pipeline Provider and select GitHub.
- Click Enable Account for the account you want to enable.
- Enable CI Visibility for the whole account by clicking the toggle next to Enable CI Visibility.
- Alternatively, you can enable individual repositories by scrolling through the repository list and clicking the Enable CI Visibility toggle.
Pipelines appear immediately after enabling CI Visibility for any account or repository.
Disable GitHub Actions tracing
To disable the CI Visibility GitHub Actions integration, make sure the GitHub app is no longer subscribed to the
workflow job and workflow run events. To remove the events:
- Go to the GitHub Apps page.
- Click Edit > Permission & events on the relevant Datadog GitHub App (if you have multiple apps, you have to repeat the process for each).
- Scroll to the Subscribe to events section, and make sure that Workflow job and Workflow run are not selected.
Collect job logs
The GitHub Actions CI Visibility integration also allows you to automatically forwarding workflow job logs to Log Management.
To enable job logs collection:
- In Datadog, navigate to Software Delivery > CI Visibility > Add a Pipeline Provider and select GitHub.
- Click Enable Account for the account you want to enable.
- Enable Job Logs Collection for the whole account by clicking the toggle next to Enable Job Logs Collection.
- Alternatively, you can enable individual repositories by scrolling through the repository list and clicking the Enable Job Logs Collection toggle.
Immediately after toggling logs collection, workflow job logs are forwarded to Datadog Log Management. Log files larger than 1 GiB are truncated.
Logs are billed separately from CI Visibility. Log retention, exclusion, and indexes are configured in Log Management. Logs for GitHub jobs can be identified by the datadog.product:cipipeline
and source:github
tags.
Correlate infrastructure metrics to jobs
If you are using self-hosted GitHub runners, you can correlate jobs with the hosts running them by ensuring that the GitHub runner name matches the hostname of the machine. CI Visibility uses this information to link to infrastructure metrics.
To see the metrics, click on a job span in the trace view. A window opens with an Infrastructure tab displaying the host metrics.
Visualize pipeline data in Datadog
The CI Pipeline List and Executions pages populate with data after the pipelines finish.
The CI Pipeline List page shows data for only the default branch of each repository. For more information, see Search and Manage CI Pipelines.
Further reading
Additional helpful documentation, links, and articles: