Header background

Automate extensions management with the Extensions API (Early Adopter)

The Dynatrace Extensions API, currently available in an Early Adopter release, allows you to manage all types of built-in or custom extensions for OneAgent, ActiveGate, or JMX/PMI.

How many HAProxy servers do you have? 100? 1,000? 10,000? Assuming you have 10,000 hosts, would you apply a single and unified configuration to all hosts? Probably not. In extreme cases, there would be as many configuration variations as actual hosts. Modifying configurations manually via the UI for each and every host is time consuming, labor intensive, and error prone.

To help you scale configuration for HAProxy and other types of extensions, we’re happy to introduce our Extensions API with Dynatrace version 1.190. The new Extensions API enables you to easily automate your extension management.

Easily automate every step of extension management with the Extensions API

The Extensions API, currently available in an Early Adopter release, allows you to manage all types of built-in or custom extensions for OneAgent, ActiveGate, or JMX/PMI. It provides you with 17 operations related to extension management. Among other operations, you can:

  • Enable or disable extensions in bulk on selected hosts.
  • Check how many servers are covered and monitored.
  • Quickly inform your teams about an error.
  • Automatically manage failovers.

Automatically detect and monitor new technologies using global configuration

Let’s take a look at an example that shows how you can use the new Extensions API to configure and detect new technologies.

OneAgent extensions are deployed with each OneAgent instance. We’ll use HAProxy for this example. If you enable global configuration for HAProxy, any new HAProxy servers will be automatically detected and monitored. You just need to install OneAgent—no additional configuration is required. With this approach, Dynatrace assigns the most common default configurations automatically.

Extension automation - global configuraton for HAProxy

Now you can easily analyze extension statuses, filter by error types, and understand your monitoring coverage. But what if you need to customize your configuration on individual hosts?

You can also navigate to any host configuration page and override the global configuration using host-specific settings. The best news is that the Extensions API allows you to automate every configuration action related to extensions.

Host-specific configuration to override global configuration

To begin, identify your extension ID using the GET all extensions request, or copy the ID directly from the extension page.

Extension ID

Example use cases for the Extensions API

Extensions API in the API Explorer

Turn on/off an extension on selected groups of hosts

With the GET available hosts request, you can fetch the IDs of hosts that have a specific tag, host group, or management zone (for example, “retrieve the list of HAProxy hosts IDs that have the tag ‘A'”). With this feature, you can enable or disable extensions in bulk on selected hosts—use POST to create local configuration PUT to update existing ones.

Control your monitoring coverage

What percent of your HAProxy servers are properly monitored? Do you monitor all production servers? With GET available hosts and GET states of an extension, you can check how many servers are covered and monitored properly.

Quickly inform your teams about errors with error reporting

Extensions can report errors. If an extension stops monitoring your data, and this results in an error, you can inform the responsible team automatically using GET states of an extension.

Automatically upload your extensions

You can upload your custom extensions to the Dynatrace Cluster as part of your deployment process. This way, you can update, add, or move extensions from one environment to another.

Note: This handles uploading to the Dynatrace Cluster only. To upload extensions to hosts, we recommend using tools like Ansible or Puppet. Only JMX extensions are redistributed from the Dynatrace Cluster to all hosts—there’s no security risk as JMX extensions are declarative. Use POST an extension .zip file to upload your extension to the Dynatrace Cluster.

Easily manage failovers for ActiveGate extensions

With PUT an extension instance, you can create a number of communication endpoints for your extension but assign extension execution to different ActiveGates. With GET states of an extension, you can detect problems, and, in the case of issues, switch extension execution to another ActiveGate.

FAQ

When can I begin using the Extensions API?

  • The Dynatrace Extensions API is available with Dynatrace version 1.190.
  • The UI changes were delivered incrementally. The final update will be in version 1.193.

What is the future of the Dynatrace Plugins API?

The Plugins API was created to support ActiveGate extensions. The Extensions API covers all types of extensions. The Plugins API will be deprecated by the end of 2020.

Currently, custom extensions consume custom metrics. Built-in extensions don’t consume custom metrics. There are no costs related to the Extensions API.

Feedback?

Do you have other automation needs? Feel free to try all the 17 available Extensions API operations and let us know if you need anything else—we’re here to help.