Extensions 2.0
Extensions 2.0 provide monitoring capabilities for technologies not covered by OneAgent out of the box. dtctl lets you list, inspect, and configure extensions and their monitoring configurations.
Listing Extensions
# List all extensions
dtctl get extensions
# Filter by name
dtctl get extensions --name "sql"
# Using the alias
dtctl get ext --name "postgres"
Viewing Extension Versions
Each extension can have multiple versions installed. View available versions for a specific extension:
dtctl get extension com.dynatrace.extension.postgres
Describing an Extension
Get full details about a specific extension version, including its configuration schema and metadata:
dtctl describe extension com.dynatrace.extension.postgres --version 2.9.3
Retrieve the monitoring configuration JSON Schema for a version:
dtctl describe extension com.dynatrace.extension.postgres --version 2.9.3 --monitoring-configuration-schema
# Strip documentation/display noise for scripting
dtctl describe extension com.dynatrace.extension.postgres --version 2.9.3 --monitoring-configuration-schema --no-fluff
List the ActiveGate groups available for a specific version:
dtctl describe extension com.dynatrace.extension.postgres --version 2.9.3 --active-gate-groups
Installing Extensions
Upload a Custom Extension
dtctl create extension -f my-extension.zip
# Preview without applying
dtctl create extension -f my-extension.zip --dry-run
Install from the Hub
# Latest version
dtctl create extension --hub-extension com.dynatrace.extension.host-monitoring
# Specific version
dtctl create extension --hub-extension com.dynatrace.extension.host-monitoring --version 1.2.3
Required scope:
extensions:definitions:write
Monitoring Configurations
Monitoring configurations define how an extension collects data – which endpoints to monitor, credentials, polling intervals, and feature flags.
Listing Monitoring Configurations
# List all monitoring configs for an extension
dtctl get extension-configs --extension com.dynatrace.extension.postgres
# Using the alias
dtctl get ext-configs --extension com.dynatrace.extension.postgres
# Describe a specific monitoring config
dtctl describe extension-config <config-id>
Creating Monitoring Configurations
Define a monitoring configuration in YAML and create it:
# postgres-monitoring.yaml
scope: HOST_GROUP-ABC123
description: Production PostgreSQL monitoring
version: "2.9.3"
featureSets:
- postgresql
postgresql:
endpoints:
- host: db-prod-01.internal
port: 5432
authentication:
scheme: basic
username: monitoring
password: "{{ .db_password }}"
databases:
- name: app_production
collectMetrics: true
dtctl create extension-config -f postgres-monitoring.yaml \
--extension com.dynatrace.extension.postgres
Applying with Options
# Apply with scope
dtctl apply -f postgres-monitoring.yaml --scope HOST_GROUP-ABC123
# Dry-run to validate
dtctl apply -f postgres-monitoring.yaml --dry-run
# Use template variables for environment-specific values
dtctl apply -f postgres-monitoring.yaml \
--set db_password=secret123 \
--set env=production
Generic Apply
Extension configurations can also be applied using the generic dtctl apply -f command when the YAML file includes a type field:
# postgres-config.yaml
type: extension-config
extension: com.dynatrace.extension.postgres
spec:
scope: HOST_GROUP-ABC123
description: Production PostgreSQL monitoring
version: "2.9.3"
featureSets:
- postgresql
postgresql:
endpoints:
- host: db-prod-01.internal
port: 5432
dtctl apply -f postgres-config.yaml
Template Variables for Multi-Environment Deployment
Use Go template syntax and the --set flag to deploy the same configuration across environments:
# extension-template.yaml
scope: "{{ .host_group }}"
description: "{{ .env | title }} PostgreSQL monitoring"
version: "2.9.3"
featureSets:
- postgresql
postgresql:
endpoints:
- host: "{{ .db_host }}"
port: 5432
authentication:
scheme: basic
username: monitoring
password: "{{ .db_password }}"
# Deploy to staging
dtctl create extension-config -f extension-template.yaml \
--extension com.dynatrace.extension.postgres \
--set env=staging \
--set host_group=HOST_GROUP-STAGING \
--set db_host=db-staging.internal \
--set db_password=staging-pass
# Deploy to production
dtctl ctx use production
dtctl create extension-config -f extension-template.yaml \
--extension com.dynatrace.extension.postgres \
--set env=production \
--set host_group=HOST_GROUP-PROD \
--set db_host=db-prod-01.internal \
--set db_password=prod-pass
Aliases
| Full Name | Alias |
|---|---|
extensions |
ext |
extension-configs |
ext-configs |
Example Configurations
SQL Server Extension
scope: HOST_GROUP-SQL01
description: SQL Server monitoring
version: "2.5.1"
featureSets:
- sqlserver
sqlServer:
endpoints:
- host: sql-prod.internal
port: 1433
authentication:
scheme: basic
username: dt_monitor
password: "{{ .sql_password }}"
databases:
- name: OrdersDB
SNMP Extension
scope: HOST_GROUP-NETWORK
description: Network device monitoring
version: "2.3.0"
featureSets:
- snmpDefault
snmp:
devices:
- address: 10.0.1.1
snmpVersion: v3
authentication:
username: dtmonitor
authProtocol: SHA
authPassword: "{{ .snmp_auth }}"
privProtocol: AES
privPassword: "{{ .snmp_priv }}"
Hub Catalog
The Dynatrace Hub catalog lets you browse available extensions before installing them. These commands are read-only and do not require write scopes.
Browsing Hub Extensions
# List all available extensions in the Hub
dtctl get hub-extensions
# Filter by keyword (case-insensitive, matches name, ID, or description)
dtctl get hub-extensions --filter kafka
# Wide output (includes description)
dtctl get hub-extensions -o wide
# Get a specific Hub extension by ID
dtctl get hub-extensions com.dynatrace.extension.host-monitoring
# Describe a Hub extension
dtctl describe hub-extensions com.dynatrace.extension.host-monitoring
Viewing Extension Releases
# List all releases for an extension
dtctl get hub-extension-releases com.dynatrace.extension.host-monitoring
# Output as JSON
dtctl get hub-extension-releases com.dynatrace.extension.host-monitoring -o json
Aliases
| Full Name | Alias |
|---|---|
hub-extensions |
hub-extension |
hub-extension-releases |
hub-extension-release |