Welcome to the Dynatrace plugin!
This plugin uses the Backstage proxy to communicate with Dynatrace's REST APIs.
The Dynatrace plugin will require the following information, to be used in the configuration options detailed below:
- Dynatrace API URL, e.g.
https://my-dynatrace-instance.dynatrace.com/api/v2 - Dynatrace API access token (see documentation), with the following permissions:
entities.readproblems.readDataExportand/orExternalSyntheticIntegrationand/orReadSyntheticData
- Install the plugin on your frontend:
# From your Backstage root directory
yarn --cwd packages/app add @backstage-community/plugin-dynatrace
- We created in our catalog the interface for using the integration with Dynatrace.
# packages/app/src/components/catalog/EntityPage.tsx
[...]
+ import { DynatraceTab, isDynatraceAvailable } from '@backstage-community/plugin-dynatrace'
[...]
const serviceEntityPage = (
<EntityLayout>
[...]
+ <EntityLayout.Route
+ path="/dynatrace"
+ title="Dynatrace"
+ if={isDynatraceAvailable}
+ >
+ <DynatraceTab />
+ </EntityLayout.Route>
</EntityLayout>
)
This plugin requires a proxy endpoint for Dynatrace configured in app-config.yaml like so:
proxy:
endpoints:
'/dynatrace':
target: 'https://example.dynatrace.com/api/v2'
headers:
Authorization: 'Api-Token ${DYNATRACE_ACCESS_TOKEN}'It also requires a baseUrl for rendering links to problems in the table like so:
dynatrace:
baseUrl: 'https://example.dynatrace.com'To show information from Dynatrace for a catalog entity, add the following annotation to catalog-info.yaml:
# catalog-info.yaml
# [...]
metadata:
annotations:
dynatrace.com/dynatrace-entity-id: DYNATRACE_ENTITY_ID
# [...]The DYNATRACE_ENTITY_ID can be found in Dynatrace by browsing to the entity (a service, synthetic, frontend, workload, etc.). It will be located in the browser address bar in the id parameter and has the format ENTITY_TYPE-ENTITY_ID, where ENTITY_TYPE will be one of SERVICE, SYNTHETIC_TEST, or other, and ENTITY_ID will be a string of characters containing uppercase letters and numbers.
To monitor multiple entities, you can specify multiple entity IDs separated by commas:
# catalog-info.yaml
# [...]
metadata:
annotations:
dynatrace.com/dynatrace-entity-id: DYNATRACE_ENTITY_ID_1, DYNATRACE_ENTITY_ID_2
# [...]This allows you to aggregate problems from multiple Dynatrace entities into a single view. For more information on how entity IDs are handled, see the Dynatrace Problems API documentation.
To show recent results from a Synthetic Monitor, add the following annotation to catalog-info.yaml:
# catalog-info.yaml
# [...]
metadata:
annotations:
dynatrace.com/synthetics-ids: SYNTHETIC_ID, SYNTHETIC_ID_2, ...
# [...]The annotation can also contain a comma or space separated list of Synthetic Ids to surface details for multiple monitors!
The SYNTHETIC_ID can be found in Dynatrace by browsing to the Synthetic monitor. It will be located in the browser address bar in the resource path - https://example.dynatrace.com/ui/http-monitor/HTTP_CHECK-1234 for an Http check, or https://example.dynatrace.com/ui/browser-monitor/SYNTHETIC_TEST-1234 for a browser clickpath.
This plugin was originally built by TELUS.
This plugin is not officially supported by Dynatrace.
