Set up the Dynatrace GCP metric and log integration on a new GKE Autopilot cluster
Dynatrace version 1.230+
Follow the instructions below to set up Google Cloud Platform monitoring for metrics and logs on a new GKE Autopilot cluster, using Google Cloud Shell. During setup, a new Pub/Sub subscription will be created. GKE will run two containers: a metric forwarder and a log forwarder. After installation, you'll get metrics, logs, dashboards, and alerts for your configured services in Dynatrace.
If you prefer to run the deployment script on an existing standard GKE or GKE Autopilot cluster, see Set up the Dynatrace GCP log and metric integration on an existing GKE cluster.
For other deployment options, see Alternative deployment scenarios.
This page describes how to install version 1.0 of the GCP integration on a GKE cluster.
- If you already have an earlier version installed, you need to migrate.
Limitations
Dynatrace GCP log integration supports maximum 2 GB of data processing per hour.
Dynatrace GCP metric integration supports up to 50 GCP projects with the standard deployment. To monitor larger environments, you need to enable metrics scope. See Monitor multiple GCP projects - Large environments.
Prerequisites
To deploy the integration, you need to make sure the following requirements are met on the machine where you are running the installation.
-
Linux OS only
-
Internet access
-
GKE Cluster access
-
Dynatrace environment access
You need to configure the Dynatrace endpoint (environment, cluster or ActiveGate URL) to which the GKE autopilot cluster should send metrics and logs. Make sure that you have direct network access or, if there is a proxy or any other component present in between, that communication is not affected.
Tools
You can deploy the Dynatrace GCP integration in Google Cloud Shell or in bash.
If you use bash, you need to install:
GCP permissions
Running the deployment script requires a list of permissions. You can create a custom role (see below) and use it to deploy dynatrace-gcp-monitor
.
- Create a YAML file named
dynatrace-gcp-monitor-helm-deployment-role.yaml
with the following content:
- Run the command below, replacing
<your_project_ID>
with the project ID where you want to deploy the Dynatrace GCP integration.
gcloud iam roles create dynatrace_monitor.helm_deployment --project=<your_project_ID> --file=dynatrace-gcp-monitor-helm-deployment-role.yaml
Be sure to add this role to your GCP user. For details, see Grant or revoke a single role.
Configure log export
- Run the following shell script in the GCP project you've selected for deployment.
Be sure to replace <your-subscription-name>
and <your-topic-name>
with your own values.
wget https://raw.githubusercontent.com/dynatrace-oss/dynatrace-gcp-monitor/master/scripts/deploy-pubsub.sh
chmod +x deploy-pubsub.sh
./deploy-pubsub.sh --topic-name <your-topic-name> --subscription-name <your-subscription-name>
- Configure log export to send the desired logs to the GCP Pub/Sub topic created above.
Dynatrace permissions
You need to create a token with a set of permissions.
- In the Dynatrace menu, go to Access tokens.
- Select Generate new token.
- Enter a name for your token.
- Under Template, select
GCP Services Monitoring
. - Select Generate.
- Copy the generated token to the clipboard. Store the token in a password manager for future use.
Alternatively, you can create the token and add permissions manually.
Log ingestion
-
If you are using Log Monitoring v1, enable the latest version of Dynatrace Log Monitoring.
-
Determine where log ingestion will be performed, according to your deployment. This distinction is important when configuring the parameters for this integration.
-
For SaaS deployments: SaaS log ingest, where log ingestion is performed directly through the Cluster API. recommended
-
For Managed deployments: You can use an existing ActiveGate for log ingestion. For information on how to deploy it, see ActiveGate installation.
-
Install
Complete the steps below to finish your setup.
Download the Helm deployment package in Google Cloud Shell
Configure parameter values
Run the deployment script
Download the Helm deployment package in Google Cloud Shell
wget -q "https://github.com/dynatrace-oss/dynatrace-gcp-monitor/releases/latest/download/helm-deployment-package.tar"; tar -xvf helm-deployment-package.tar; chmod +x helm-deployment-package/deploy-helm.sh
Configure parameter values
-
The Helm deployment package contains a
values.yaml
file with the necessary configuration for this deployment. Go tohelm-deployment-package/dynatrace-gcp-monitor
and edit thevalues.yaml
file, setting the required and optional parameter values as follows.You might want to store this file somewhere for future updates, since it will be needed in case of redeployments. Also, keep in mind that its schema can change. In such case, you should use the new file and only copy over the parameter values.
Parameter name Description Default value gcpProjectId
required The ID of the GCP project you've selected for deployment. Your current project ID deploymentType
required Leave to 'all'. all
dynatraceAccessKey
required Your Dynatrace API token with the required permissions. dynatraceUrl
required For SaaS log/metric ingestion, it's your environment URL ( https://<your-environment-id>.live.dynatrace.com
).
For Managed log/metric ingestion, it's your cluster URL (https://<your_cluster_IP_or_hostname>/e/<your_environment_ID>
).
For Managed log/metric ingestion with an existing ActiveGate, it's the URL of your ActiveGate (https://<your_activegate_IP_or_hostname>:9999/e/<your_environment_ID>
).
Note: To determine<your-environment-id>
, see environment ID.logsSubscriptionId
required The ID of your log Sink Pub/Sub subscription. For details, see Configure log export. dynatraceLogIngestUrl
optional You can set it if you want to ingest logs separately from metrics.
For SaaS log ingestion, it's your environment URL (https://<your_environment_ID>.live.dynatrace.com
)
For Managed log ingestion with an existing ActiveGate, it's the URL of your ActiveGate (https://<your_activegate_IP_or_hostname>:9999/e/<your_environment_ID>
)
Note: To determine<your-environment-id>
, see environment ID.requireValidCertificate
optional If set to true
, Dynatrace requires the SSL certificate of your Dynatrace environment. For SaaS log ingestion, we recommend leaving the default value. For Managed log ingestion with a new ActiveGate, we recommend setting this value tofalse
.true
selfMonitoringEnabled
optional Send custom metrics to GCP to quickly diagnose if dynatrace-gcp-monitor
processes and sends metrics/logs to Dynatrace properly. For details, see Self-monitoring metrics for the Dynatrace GCP integration.false
serviceAccount
optional Name of the service account to be created. dockerImage
optionalDynatrace GCP Monitor docker image. We recommend using the default value, but you can adapt it if needed. dynatrace/dynatrace-gcp-monitor:v1-latest
logIngestContentMaxLength
optional The maximum content length of a log event. Should be the same as or lower than the setting on your Dynatrace environment. 8192
logIngestAttributeValueMaxLength
optional The maximum length of the log event attribute value. If it exceeds the server limit, content will be truncated. 250
logIngestRequestMaxEvents
optional The maximum number of log events in a single payload to the logs ingestion endpoint. If it exceeds the server limit, payload will be rejected with code 413
.5000
logIngestRequestMaxSize
optional The maximum size in bytes of a single payload to the logs ingestion endpoint. If it exceeds the server limit, payload will be rejected with code 413
.1048576
logIngestEventMaxAgeSeconds
optional Determines the maximum age of a forwarded log event. Should be the same as or lower than the setting on your Dynatrace environment. 86400
printMetricIngestInput
optional If set to true
, the GCP Monitor outputs the lines of metrics to stdout.false
serviceUsageBooking
optional Service usage booking is used for metrics and determines a caller-specified project for quota and billing purposes. If set to source
, monitoring API calls are booked in the project where the Kubernetes container is running. If set todestination
, monitoring API calls are booked in the project that is monitored. For details, see Monitor multiple GCP projects - Standard environments - Step 4.source
useProxy
optional Depending on the value you set for this flag, the GCP Monitor will use the following proxy settings: Dynatrace (set to DT_ONLY
), GCP API (set toGCP_ONLY
), or both (set toALL
).By default, proxy settings are not used. httpProxy
optional The proxy HTTP address; use this flag in conjunction with USE_PROXY
.httpsProxy
optional The proxy HTTPS address; use this flag in conjunction with USE_PROXY
.gcpServicesYaml
optional Configuration file for GCP services. queryInterval
optional Metrics polling interval in minutes. Allowed values: 1
-6
3
vpcNetwork
optional Existing VPC Network where the autopilot cluster will be deployed. Shared VPC is not supported. default
scopingProjectSupportEnabled
optional Set to true
when metrics scope is configured, so metrics will be collected from all projects added to the metrics scope. For details, see Monitor multiple GCP projects - Large environments.false
excludedProjects
optional Comma-separated list of projects to be excluded from monitoring (for example, <project_A>,<project_B>
) -
Choose which services you want Dynatrace to monitor.
By default, the Dynatrace GCP integration starts monitoring a set of selected services. Go to Google Cloud Platform supported service metrics for a list of supported services.
For DDU consumption information, see Monitoring consumption.
Run the deployment script
The deployment script will automatically create the new GKE Autopilot cluster named dynatrace-gcp-monitor
and deploy the installation to it. The latest versions of GCP extensions will be uploaded.
cd helm-deployment-package
./deploy-helm.sh --create-autopilot-cluster
To set a different name for the new cluster, run the command below instead, making sure to replace the placeholder (<name-of-new-cluster>
) with your preferred name.
cd helm-deployment-package
./deploy-helm.sh --create-autopilot-cluster --autopilot-cluster-name <name-of-new-cluster>
To keep the existing versions of present extensions and install the latest versions for the rest of the selected extensions, if they are not present, run the command below instead.
cd helm-deployment-package
./deploy-helm.sh --create-autopilot-cluster --without-extensions-upgrade
Verify installation
To check whether installation was successful
-
Check if the container is running.
After the installation, it may take couple of minutes until the container is up and running.
kubectl -n dynatrace get pods
-
Check the container logs for errors or exceptions. You have two options:
Run the following commands.
kubectl -n dynatrace logs -l app=dynatrace-gcp-monitor -c dynatrace-gcp-monitor-metrics kubectl -n dynatrace logs -l app=dynatrace-gcp-monitor -c dynatrace-gcp-monitor-logs
To check the container logs for errors in your GCP console
-
Go to Logs explorer.
-
Use the filters below to get metric and/or log ingest logs from the Kubernetes container:
resource.type="k8s_container"
resource.labels.container_name="dynatrace-gcp-monitor-metrics"
(for metric ingest logs)resource.labels.container_name="dynatrace-gcp-monitor-logs"
(for log ingest logs)
-
-
Check if dashboards are imported.
In the Dynatrace menu, go to Dashboards and filter by Tag for
Google Cloud
. A number of dashboards for Google Cloud Services should be available.
Choose services for metrics monitoring
Services enabled by default
Monitoring of following services will be enabled during deployment of GCP Monitor:
- Google APIs
- Google App Engine
- Google BigQuery
- Google Cloud Functions
- Google Cloud Run
- Google Cloud Storage
- Google Compute Engine
- Google Firestore in Datastore mode
- Google Filestore
- Google Kubernetes Engine
- Google Cloud Load Balancing
- Google Cloud Pub/Sub
- Google Cloud Pub/Sub Lite
- Google Cloud SQL
There are more service integrations available, but need to be enabled. Go to Google Cloud Platform supported service metrics for a list of supported services. Next section describes how to manage them.
Manage enabled services
You can manage enabled services through your Dynatrace Hub (Dynatrace UI > Manage > Dynatrace Hub).
Filter for gcp
in the hub. Tiles with In environment
label or New version available
label are already enabled for metrics monitoring.
To enable new service, open it in the hub and press Add to environment
.
To disable a service, open it in the hub, go to Configuration
tab and remove all loaded versions (ones with thrash bin icon). Make sure to remove all, since if you have been updating specific service, it will keep reverting to previous versions.
Services with New version available
label can be updated. Open them in hub and check release notes. The updates can bring new metrics, new assets like dashboards etc. To update a service, press Update extension
button in release notes box.
All changes to enabled services are applied to GCP Monitor within few minutes.
Feature sets & available metrics
To see what metrics are included for specific service, check Google Cloud Platform supported service metrics. By default, only defaultMetrics
feature set is enabled. To enable additional feature sets, you have to uncomment them in values.yaml
file and redeploy whole GCP Monitor.
Current configuration of feature sets can be found in cluster's ConfigMap named dynatrace-gcp-function-config
.
Advanced scope management
To further refine monitoring scope, you can use filter_conditions
field in values.yaml
file. This requires GCP Monitor to be redeployed. See GCP Monitoring filters for syntax.
Example:
filter_conditions:
resource.labels.location = "us-central1-c" AND resource.labels.namespace_name = "dynatrace"
Enable alerting
To activate alerting, you need to enable metric events for alerting in Dynatrace.
To enable metric events
- In the Dynatrace menu, go to Settings.
- In Anomaly detection, select Metric events.
- Filter for GCP alerts and turn on On/Off for the alerts you want to activate.
View metrics and logs
After deploying the integration, you can:
- See metrics from monitored services: in the Dynatrace menu, go to Metrics and filter by
gcp
. - View and analyze GCP logs: in the Dynatrace menu, go to Logs and, to look for GCP logs, filter by
cloud.provider: gcp
.
Change deployment settings
Change parameters from values.yaml
To load a new values.yaml
file, you need to upgrade your Helm release.
To update your Helm release
-
Find out what Helm release version you're using.
helm ls -n dynatrace
-
Run the command below, making sure to replace
<your-helm-release>
with value from previous step.helm upgrade <your-helm-release> dynatrace-gcp-monitor -n dynatrace
For details, see Helm upgrade.
Change deployment type
To change the deployment type (all
, metrics
, or logs
)
-
Find out what helm release version you're using.
helm ls -n dynatrace
-
Uninstall the release.
Be sure to replace
<your-helm-release>
with the release name from the previous output.helm uninstall <your-helm-release> -n dynatrace
-
Edit
deploymentType
invalues.yaml
with the new value and save the file. -
Run the deployment command again. For details, see Run the deployment script.
Troubleshoot
To investigate potential deployment and connectivity issues
- Verify installation
- Enable self-monitoring optional
- Check the
dynatrace_gcp_<date_time>.log
log file created during the installation process.
- This file will be created each time the installation script runs.
- The debug information won't contain sensitive data such as the Dynatrace access key.
- If you are contacting a Dynatrace product expert via live chat:
- Make sure to provide the
dynatrace_gcp_<date_time>.log
log file described in the previous step. - Provide version information.
- For issues during installation, check the
version.txt
file. - For issues during runtime, check container logs.
- For issues during installation, check the
- Make sure to provide the
Uninstall
- Find out what Helm release version you're using.
helm ls -n dynatrace
- Uninstall the release.
Be sure to replace <your-helm-release>
with the release name from the previous output.
helm uninstall <your-helm-release> -n dynatrace
Alternatively, you can delete the namespace.
kubectl delete namespace dynatrace
- To remove all monitoring assets (dashboards, alerts, etc) from Dynatrace, you need to remove all GCP extensions.
To remove an extension
- In the Dynatrace menu, go to Extensions and search for the GCP extensions.
- Select an extension you want to remove, and then select the trash icon in the Actions column to remove it.
Repeat the procedure until you remove all GCP extensions.
Monitoring consumption
Metric ingestion
All cloud services consume DDUs. The amount of DDU consumption per service instance depends on the number of monitored metrics and their dimensions (each metric dimension results in the ingestion of 1 data point; 1 data point consumes 0.001 DDUs). For details, see Extending Dynatrace (Davis data units).
Log ingestion
DDU consumption applies to cloud Log Monitoring. See DDUs for Log Monitoring for details.