Using Built-in Data Sources

Published on May 12th, 2023

Roadie includes several (built-in) Data Sources for common vendors such as Datadog, Snyk, PagerDuty, and GitHub. All built-in Data Sources have pre-defined Facts you can use for defining your Checks.

Configuring Built-in Data Sources

Built-in Data Sources use integration configurations from common Backstage plugins and annotations provided by them. You can see configuration instructions for integrations on their respective documentation pages in the Plugins & Integrations page.

We have built several Data Sources, which you can find explained below, together with annotations used by them and facts they currently include. You can get a list of the facts available on each data source within the app as well. You can learn how to access this information within the app on the Data Source results and details page.

This list will probably have better accuracy, since we update facts frequently.

Please note, if you don’t find what you are looking for and/or want to create something we haven’t provided out of the box, Roadie Tech Insights lets you define custom Data Sources. More information around that can be found here.

Datadog Data Source

Imports data from Datadog which can be used to create Tech Insights checks.

Annotations used:

  • datadoghq.com/slo_tag for retrieving SLOs
  • datadoghq.com/monitor_tags for retrieving monitors

Authentication

Authentication is done via

Facts
Name Description
Slo Count Number of SLOs configured in datadog matched based on the annotated tag.
Monitor Count Number of monitors configured in datadog with tags matching the monitor_tags annotation.

Dependabot Alerts Data Source

Generates fact data from GitHub Dependabot Alerts for the entity.

Annotations used: github.com/project-slug

Authentication

Authentication is done via GitHub App or GITHUB TOKEN Read more.

If you have GitHub App installed, access will be granted based on permissions granted for it. In case you haven’t installed the GitHub app, we will check for GITHUB TOKEN which is used to authenticate with the GitHub APIs.

Facts
Name Description
Open Alerts Number of Dependabot alerts with state “open”.
Dismissed Alerts Number of Dependabot alerts with state “dismissed”.
Dismissed Without Reason Alerts Number of Dependabot alerts with state “dismissed” that don’t have dismissed_reason set.
Dismissed Without Comment Alerts Number of Dependabot alerts with state “dismissed” that don’t have dismissed_comment set.
Fixed Alerts Number of Dependabot alerts with state “fixed”.
Open Critical Severity Alerts Number of open Dependabot alerts with “critical” severity.
Open High Severity Alerts Number of open Dependabot alerts with “high” severity.
Open Medium Severity Alerts Number of open Dependabot alerts with “medium” severity.
Open Low Severity Alerts Number of open Dependabot alerts with “low” severity.
Dissmissed Critical Severity Alerts Number of dismissed Dependabot alerts with “critical” severity.
Dissmissed High Severity Alerts Number of dismissed Dependabot alerts with “high” severity.
Dissmissed Medium Severity Alerts Number of dismissed Dependabot alerts with “medium” severity.
Dissmissed Low Severity Alerts Number of dismissed Dependabot alerts with “low” severity.
Fixed Critical Severity Alerts Number of fixed Dependabot alerts with “critical” severity.
Fixed High Severity Alerts Number of fixed Dependabot alerts with “high” severity.
Fixed Medium Severity Alerts Number of fixed Dependabot alerts with “medium” severity.
Fixed Low Severity Alerts Number of fixed Dependabot alerts with “low” severity.
Oldest Open Alert Publish Date Oldest alert publish date with state “open”.
Oldest Open Alert Update Date Oldest alert update date with state “open”.

Entity Metadata Data Source

Generates facts for entities you have loaded into Backstage based on the data defined in their entity YAML.

Annotations used: None, applicable to entities which are component, domain, system, api, resource or template kind.

Authentication

Authentication is done via GitHub App or GITHUB TOKEN Read more.

If you have GitHub App installed, access will be granted based on permissions granted for it. In case you haven’t installed the GitHub app, we will check for GITHUB TOKEN which is used to authenticate with the GitHub APIs.

Facts
Name Description
Has Title The entity has a title in metadata.
Has Description The entity has a description in metadata.
Has Relationship Has relationships defined to other entities.
Has Tags The entity has tags in metadata.
Kind The entity kind.
Name The entity name.
Namespace The entity namespace.
Title The entity title.
Description The entity description.
Type The entity type.
Lifecycle The entity lifecycle.
GitHub Project Slug The entity’s Github project slug.
Tags The entity’s tags.
Owner The entity owner.
Annotation Keys The entity annotation keys.
Label Keys The entity label keys.
Link Urls Links urls associated with the entity.

Entity Ownership Data Source

Generates facts which indicate the quality of data in the spec.owner field.

Annotations used: None, applicable to entities which are component, domain, system, api, resource or template kind

Authentication

Authentication is done via GitHub App or GITHUB TOKEN Read more.

If you have GitHub App installed, access will be granted based on permissions granted for it. In case you haven’t installed the GitHub app, we will check for GITHUB TOKEN which is used to authenticate with the GitHub APIs.

Facts
Name Description
Has Owner The spec.owner field is set.
Has Group Owner The spec.owner field is set and refers to a group.
Has Relationship Has relationships defined to other entities.
Owner The entity owner.
System The system that the entity belongs to.
Depends On An array of entity references to the components and resources that the entity depends on.
Dependency of An array of entity references to the components and resources that the resource is a dependency.
Consumes APIs An array of entity references to the APIs that are consumed by the entity.
Provides APIs An array of entity references to the APIs that are provided by the entity.
Subcomponent Of An entity reference to another component of which the entity is a part.

GitHub Data Source

Generates fact data about GitHub for the entity

Annotations used: github.com/project-slug

Authentication

If you have GitHub App installed, access will be granted based on permissions granted for it. In case you haven’t installed the GitHub app, we will check for GITHUB TOKEN which is used to authenticate with the GitHub APIs read more.

Facts
Name Description
Amount Of Open Pull Requests Number of GitHub pull requests configured for this entity.

Pagerduty Analytics Data Source

Retrieves a rolling week-long window of aggregate analytics from PagerDuty. Uses annotation “pagerduty.com/service-id” to identify applicable entities.

Annotations used: pagerduty.com/service-id

Authentication

Authentication is done via

Facts
Name Description
Mean Assignment Count Mean count of instances where responders were assigned an incident (including through reassignment or escalation) or accepted a responder request.
Mean Engaged Seconds Mean engaged time across all responders for incidents that match the given filters. Engaged time is measured from the time a user engages with an incident (by acknowledging or accepting a responder request) until the incident is resolved. This may include periods in which the incidents was snoozed.
Mean Engaged User Count Mean number of users who engaged with an incident. Engaged is defined as acknowledging an incident or accepting a responder request in it.
Mean Seconds To Engage A measure of people response time. This metric measures the time from the first user engagement (acknowledge or responder accept) to the last. This metric is only used for incidents with multiple responders; for incidents with one or no engaged users, this value is null.
Mean Seconds To First Ack Mean time between the start of an incident, and the first responder to acknowledge.
Mean Seconds To Mobilize Mean time between the start of an incident, and the last additional responder to acknowledge. For incidents with one or no engaged users, this value is null.
Mean Seconds To Resolve Mean time from when an incident was triggered until it was resolved.
Total Business Hour Interruptions Total number of unique interruptions during business hours. Business hour: 8am-6pm Mon-Fri, based on the user’s time zone.
Total Engaged Seconds Total engaged time across all responders for incidents. Engaged time is measured from the time a user engages with an incident (by acknowledging or accepting a responder request) until the incident is resolved. This may include periods in which the incidents was snoozed.
Total Escalation count Total count of instances where an incident is escalated between responders assigned to an escalation policy.
Total Incident count The total number of incidents that were created.
Total Off Hour Interruptions Total number of unique interruptions during off hours. Off hour: 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone.
Total Sleep Hour Interruptions Total number of unique interruptions during sleep hours. Sleep hour: 10pm-8am every day, based on the user’s time zone.
Total Snoozed Seconds Total number of seconds incidents were snoozed.
Up Time Pct The percentage of time in the defined date range that the service was not interrupted by a major incident.

PagerDuty Service Info Data Source

Retrieves service information from PagerDuty. Uses annotation “pagerduty.com/service-id”.

Annotations used: pagerduty.com/service-id

Authentication

Authentication is done via

Facts
Name Description
Has Scheduled Actions A Boolean indicating if the service has automatic scheduled actions configured.
Has Description A Boolean indicating if the service has a description.
Has Support Hours Set A Boolean indicating if the service has at least one day of the week of support hours assigned to it in PagerDuty.
Has Escalation Policy A Boolean indicating if the service has escalation policy assigned to it in PagerDuty.
Has Teams Assigned A Boolean indicating if the service has teams assigned to it in PagerDuty.
Alert Creation Type Alert creation type of the service. Determines whether a service creates only incidents, or both alerts and incidents. Applicable values are “create_incidents” or “create_alerts_and_incidents”.
Integration Types A set of integration types configured for the service.
Latest Incident Creation Datetime of the latest incident for the service. Defaults to Epoch 0.

Snyk Data Source

Generates fact data about Snyk projects configured for the entity.

Annotations used:

  • snyk.io/org-name, if omitted, globally configured Snyk org is used
  • snyk.io/target-id, specify a single target by name or ID
  • snyk.io/targets, specify one or more targets, by name or ID
  • snyk.io/project-ids, are the project ID (see slug in url or ID in project settings) If multiple projects (like multiple package.json or pom files, add them with increasing number), add them comma separated
  • github.com/project-slug, to identify the target based on its GitHub repository name
  • snyk.io/exclude-project-ids, to exclude specific projects you might not want.

The data source follows the same annotation structure as the official Snyk Backstage plugin. It is possible to use multiple different annotations. At a minimum one of targets, target-id, project-ids or GitHub project slug is needed.

Authentication

Authentication is done via

Facts
Name Description
Amount of Projects Number of Snyk projects configured for this entity.
Test Frequencies A collection of test frequencies configured for the projects of the entity. Individual values can be ‘daily’, ‘weekly or ‘never’.
Monitored Statuses A collection of monitored statuses for the projects of the entity. Individual values can be either true or false.
Total Dependencies Sum of all dependencies across all Snyk projects for this entity.
Low Severity Issue Count Sum of all low severity issues across all Snyk projects for this entity.
Medium Severity Issue Count Sum of all medium severity issues across all Snyk projects for this entity.
High Severity Issue Count Sum of all high severity issues across all Snyk projects for this entity.
Critical Severity Issue Count Incident Sum of all critical severity issues across all Snyk projects for this entity.
Last Tested Date Latest test timestamp of any Snyk project configured for this entity.
Tags A collection of tags for the projects of the entity. Stored as “key=value” strings.
Criticality Attributes A collection of attributes under “criticality” key for the projects of the entity.
Environment Attributes A collection of attributes under “environment” key for the projects of the entity.
Lifecycle Attributes A collection of attributes under “lifecycle” key for the projects of the entity.

TechDocs Data Source

Generates facts related to the completeness of techdocs configuration for entities

Annotations used: None, applicable to entities which are component, domain, system, api, resource or template kind

Authentication

Authentication is done via GitHub App or GITHUB TOKEN Read more.

If you have GitHub App installed, access will be granted based on permissions granted for it. In case you haven’t installed the GitHub app, we will check for GITHUB TOKEN which is used to authenticate with the GitHub APIs

Facts
Name Description
Has Annotation Backstage Io Techdocs Ref The entity has a TechDocs reference annotation.

To use built-in Data Sources, you don’t need to do any set up apart from integration configuration and configuring your entities with matching annotations. Jump to the Checks section to learn more about Checks.