Dynatrace provider

Supported versions

  • Dynatrace SaaS or Managed version 1.187 or later

    • Versions < 2.0.0 are compatible with Akamas until version 1.8.0

    • Versions >= 2.0.0 are compatible with Akamas from version 1.9.0

Supported component types

  • Linux

    • Ubuntu-16.04, Rhel-7.6

  • JVM

    • java-openjdk-8, java-openjdk-11

    • java-ibm-j9vm-6, java-ibm-j9vm-8, java-eclipse-openj9-11

  • Web Application

  • Kubernetes and Docker

Refer to Dynatrace provider metrics mapping to see how component-types metrics are extracted by this provider.

Prerequisites

  • a valid Dynatrace license

  • Dynatrace OneAgent installed on the servers where the Dynatrace entities to be monitored are running

  • Connectivity between:

    • Akamas server and Dynatrace server over port 443 (if Dynatrace is deployed on-premises)

    • Akamas server and internet (over https) if Dynatrace is managed as a SaaS platform

  • URL (+ port if it is not the default one) of your Dynatrace server (SaaS or Managed)

  • API token from your Dynatrace server (Saas or Managed) with the rights to "Access problems and event feed, metrics, and topology" - see more details here

  • A Dynatrace user belonging to the group "Monitoring viewer", which allows access to the environment in read-only mode, without being able to change settings, download or install OneAgent

Permissions

The Dynatrace provider needs a Dynatrace API token with the following privileges:

  • metrics.read (Read entities)

  • entities.read (Read metrics)

  • DataExport (Access problem and event feed, metrics, and topology)

  • DataImport (Data ingest, e.g.: metrics and events)

  • ReadSyntheticData (Read synthetic monitors, locations, and nodes)

To generate an API Token for your Dynatrace installation you can follow these steps.

Component configuration

To map metrics collected from Dynatrace to Akamas component, the Dynatrace provider looks up some properties in the components of a system grouped under dynatrace.

These properties give you access to different strategies to map Akamas components onto Dynatrace entities:

  • Map by id

  • Map by name

  • Map by tags

Map by id

You can map a component to a Dynatrace entity by leveraging the unique id of the entity, which you should put under the id property in the component:

name: MyComponent
properties:
 dynatrace:
  id: HOST-12345YUAB1

You can find the id of a Dynatrace entity by looking at the URL of a Dynatrace dashboard relative to the entity. Watch out that the "host" key is valid only for Linux components, other components (e.g. the JVM) require to drill down into the host entities to get the PROCESS_GROUP_INSTANCE or PROCESS_GROUP id

Map by name

You can map a component to a Dynatrace entity by leveraging the entity’s display name which you should put under the name property in the component definition:

name: MyComponent
properties:
 dynatrace:
  name: host-1

Map by tags

You can map a component to a Dynatrace entity by leveraging Dynatrace tags that match the entity, tags which you should put under the tags property in the component definition. If multiple tags are specified all instances matching any of the specified tags will be selected.

name: MyComponent
properties:
 dynatrace:
  tags:
     environment: test
     [AWS]dynatrace-monitored: true

In the case of a key-only tag, the example above would be:

name: MyComponent
properties:
 dynatrace:
  tags:
     environment: test
     myKeyOnlyTag: ""

Improve component mapping with type

You can improve the matching of components with Dynatrace by adding a type property in the component definition, this property will help the Provider match only those Dynatrace entities of the given type.

name: MyComponent
properties:
 dynatrace:
  type: service     # here the type helps the mapping by tags by filtering down entities that are only services
  tags:
     environment: test
     "[AWS]dynatrace-monitored": true

The type of an entity can be retrieved from the URL of the entity’s dashboard

Available entities types can be retrieved, from your Dynatrace instance, with the following command:

curl 'https://<Your Dynatrace host>/api/v2/entityTypes/?pageSize=500' --header 'Authorization: Api-Token <API-TOKEN>'

Kubernetes specific properties

A set of Kubernetes-specific properties can be used to allow users to retrieve data related to the monitored Kubernetes clusters.

Please note, that the property type is required to retrieve Kubernetes entities. Currently, the supported types in Dynatrace are the following

Dynatrace typeKubernetes type

CONTAINER_GROUP_INSTANCE

Docker container

CLOUD_APPLICATION_INSTANCE

Pod

CLOUD_APPLICATION

Workload

CLOUD_APPLICATION_NAMESPACE

Namespace

KUBERNETES_CLUSTER

Cluster

The following Kubernetes object can be retrieved from Dynatrace.

Container

The following properties are supported for containers:

AkamasDynatraceLocationNotes

namespace

Kubernetes namespace

Container dashboard

-

containerName

Kubernetes container name

Container dashboard

-

basePodName

Kubernetes base pod name

Container dashboard

-

Example

dynatrace:
  type: CONTAINER_GROUP_INSTANCE
  kubernetes:
    namespace: boutique
    containerName: server
    basePodName: ak-frontend-*

Pod

The following properties are supported for pods

AkamasDynatraceLocationNotes

state

State

Pod dashboard

-

labels

Labels

Pod dashboard

Labels are specified as key-value in Akamas configuration.

In Dynatrace’s dashboard key and value are separated with a column (:)

Example

dynatrace:
  type: CLOUD_APPLICATION_INTSTANCe
  namePrefix: ak-frontend-
  kubernetes:
    state: RUNNING
    labels:
      app: ak-frontend
      product: hipstershop

Last updated