You can manage your extension through Extensions app (latest Dynatrace), Dynatrace Hub, or the Dynatrace API.
Latest Dynatrace
Now you can use the dedicated Extensions app to manage your extensions. It provides a similar activation and configuration workflow as Dynatrace Hub in the previous Dynatrace. Additionally, it gives you direct access to extension health monitoring.
You can use the Extension Manager app to upload your custom extension. Check the required permissions in the Dynatrace Hub overview of the app (Technical information tab).
Required permission: Change monitoring settings
Select Add device to define the devices from which you want to pull data and provide the device connection details:
Your extension appears in Dynatrace Hub. The next step is to provide the monitoring configuration for your extension. The detailed steps depend on your extension data source. For more information, see:
To update an extension, simply upload a new version. Dynatrace Hub will automatically activate the new extension version.
Each update of the extension will overwrite the metric event configuration that may come with the extension. This means that any customizations made to the metric events settings will be reset to their default values upon updating the extension. It is advisable to take note of any custom configurations and reapply them after the update if necessary.
You can use the extension page to delete extension versions. When you delete a version, Dynatrace Hub activates the latest available version. To delete an extension completely, you need to delete all of the available versions.
To add an extension to your Dynatrace environment via API, perform the following sequence of steps.
After you add and enable your extension, manage its lifecycle:
Run the following command to upload the extension package to your environment. For this example, we use the Dynatrace SaaS URL:
curl -X POST "https://{env-id}.live.dynatrace.com/api/v2/extensions" \-H "accept: application/json; charset=utf-8" \-H "Authorization: Api-Token {api-token}" \-H "Content-Type: multipart/form-data" \-F "file=@MyCustomExtension.zip;type=application/zip"
Replace:
{env-id}
with your Environment ID.{api-token}
with an API token that has the required permissions.MyCustomExtension.zip
with the actual name of your extension package.After a successful upload, the Dynatrace API returns basic extension details, including the extension name, version, and minimum Dynatrace version required to run the extension:
{"extensionName":"custom:my.company.extension","version":"1.0.0","author":{"name":"My Company"},"dataSources":[],"variables":[],"featureSets":[],"minDynatraceVersion":"1.213.0"}
After you upload the extension to your environment, you need to enable the environment configuration. This step is necessary because you can upload up to 10 extension versions but you can use only one extension version at the time. When you activate the extension, you specify which extension version to use.
Run the following command to activate the extension in your environment. For this example, we use the Dynatrace SaaS URL.
curl -X PUT "https://{env-id}.live.dynatrace.com/api/v2/extensions/{extensionName}/environmentConfiguration" \-H "accept: application/json; charset=utf-8" \-H "Authorization: Api-Token {api-token}" \-H "Content-Type: application/json; charset=utf-8" \-d "{\"version\":\"{version}\"}"
Replace:
{env-id}
with your Environment ID.{api-token}
with an API token that has the required permissions.{extensionName}
with the actual extension name.{version}
with the extension version you want to activate.To determine the extension name, extract the extension package, extract the extensions.zip
file from the package, and open the extension.yaml
file.
After a successful activation, the Dynatrace API returns the version of the activated extension. For example:
{"version":"1.0.0"}
To start monitoring, you need to add at least one version of the monitoring configuration. The format of the JSON payload depends on the monitored data source.
curl -X POST "{env-id}.live.dynatrace.com/api/v2/extensions/{extensionName>/monitoringConfigurations" \-H "accept: application/json; charset=utf-8" \-H "Authorization: Api-Token {api-token}" \-H "Content-Type: application/json; charset=utf-8" \--data @{monitoring-configuration} -i
Replace:
{env-id}
with your Environment ID.{api-token}
with an API token that has the required permissions.{extensionName}
with the actual extension name.{version}
with the extension version you want to activate.{monitoring-configuration}
with the filename containing the JSON payload with the monitoring configuration. For details on the format, see SNMP.After a successful call, the Dynatrace API returns the MonitoringConfigurationResponse
object. For example:
[{ "objectId": "vu9U3hXa3q0AAAABACVleHQ6Y29tLmR5bmF0cmFjZS5zY2hlbWEtc25tcC1nZW5lcmljAAhhZ19ncm91cAAHRTJFVEVTVAAkMWMxZTlhMDctNzVkYi0zZjI0LWI4OGUtZmIxYWRiNGNjYTY4vu9U3hXa3q0", "code": 200 }]
After a few minutes, go to Metric browser and search for the metrics you defined for your extension.
To update an extension, you need to upload the new extension package and enable the new environment configuration.
To upload the package, use the same command you used to upload the initial version of the extension. You need to use the new extension package filename if it changed.
To enable the environment configuration version, you need to add the version parameter to the API call. Use one of these methods to determine the version:
extension.yaml
file inside the extension package.Run the following command to activate the new version. For this example, we use the Dynatrace SaaS URL.
curl -X PUT "https://{env-id}.live.dynatrace.com/api/v2/extensions/{extensionName}/environmentConfiguration" \-H "accept: application/json; charset=utf-8" \-H "Authorization: Api-Token {api-token}" \-H "Content-Type: application/json; charset=utf-8" \-d "{\"version\":\"{version}\"}"
Replace:
{env-id}
with your Environment ID.{api-token}
with an API token that has the required permissions.{extensionName}
with the actual extension name.{version}
with the extension version you want to activate.After a successful activation, the Dynatrace API returns the version of the activated extension. For example:
{"version":"1.1.0"}
If you need to revert activation to an earlier version, run the command above with a different version parameter.
If you uploaded a number of extension versions, you need to delete all the versions to completely remove the extension from your environment. You can use GET extension versions to list all the extension versions available in your environment.
To delete the currently active environment configuration, use DELETE environment configuration. For this example, we use the Dynatrace SaaS URL.
curl -X DELETE "{env-id}.live.dynatrace.com/api/v2/extensions/{extensionName}/environmentConfiguration" \-H "accept: application/json; charset=utf-8" \-H "Authorization: Api-Token {api-token}"
Replace:
{env-id}
with your Environment ID.{api-token}
with an API token that has the required permissions.{extensionName}
with the actual extension name.After a successful deactivation, the Dynatrace API returns the version of the deactivated extension. For example:
{"version":"1.1.0"}
To delete an extension version, use DELETE an extension version. In this example, we use the Dynatrace SaaS URL.
curl -X DELETE "{env-id}.live.dynatrace.com/api/v2/extensions/{extensionName}/{version}" \-H "accept: application/json; charset=utf-8" \-H "Authorization: Api-Token {api-token}"
Replace:
{env-id}
with your Environment ID.{api-token}
with an API token that has the required permissions.{extensionName}
with the actual extension name.{version}
with the extension version you want to delete.After a successful version deletion, the Dynatrace API returns the following response:
{"extensionName":"custom:my.company.extension","version":"1.0.0","author":{"name":"My Company"},"dataSources":[],"variables":[],"featureSets":[],"minDynatraceVersion":"1.213.0"}