• Home
  • Deploy Dynatrace
  • Set up Dynatrace on cloud platforms
  • Google Cloud Platform
  • Integrations
  • End-to-end guide for monitoring GCP services integrating Operations Suite
  • Deploy the Dynatrace GCP metric integration in GCP Cloud Function

Deploy the Dynatrace GCP metric integration in GCP Cloud Function

Dynatrace version 1.230+

Dynatrace GCP metric integration in GCP Cloud Function is deprecated and will only be supported till the end of March 2023.

If you are using this kind of deployment, you should switch to k8s-based GCP integration as soon as possible. See Migrate from GCP function 1.0 to GCP k8s 1.0.

As an alternative to the main deployment, that provides Google Cloud Platform monitoring for both metrics and logs, and where the deployment takes place in a GKE cluster, you can choose to set up monitoring for metrics only, in GCP Cloud Function. Note that the GCP Cloud Function deployment isn't recommended for large environments and doesn't support log forwarding. In this scenario, you will be able run the deployment script either in Google Cloud Shell or in bash. After installation, you'll get metrics, dashboards, and alerts for your configured services in Dynatrace.

For other deployment options, see Alternative deployment scenarios.

This page describes how to deploy version 1.0 of the Dynatrace GCP integration in GCP Cloud Function.

  • If you already have an earlier version of the GCP Monitor installed, you need to migrate.

Prerequisites

Tools

You can deploy the Dynatrace GCP integration in Google Cloud Shell or in bash.

If you use bash, you need to install

  • Google Cloud SDK

GCP permissions

Running the deployment script requires a list of permissions. You need to create a custom role and use it to deploy dynatrace-gcp-monitor.

To create a custom role

  1. Create a YAML file named dynatrace-gcp-monitor-cloud-function-deployment-role.yaml with the following content:

    dynatrace-gcp-monitor-cloud-function-deployment-role.yaml
    yaml
    title: Dynatrace GCP Monitor cloud function deployment role description: Role for Dynatrace GCP Monitor cloud function deployment stage: GA includedPermissions: - appengine.applications.get - appengine.applications.create - cloudfunctions.functions.create - cloudfunctions.functions.get - cloudfunctions.functions.list - cloudfunctions.functions.sourceCodeSet - cloudfunctions.functions.update - cloudfunctions.functions.getIamPolicy - cloudfunctions.operations.get - cloudfunctions.operations.list - cloudscheduler.locations.list - cloudscheduler.jobs.list - cloudscheduler.jobs.create - cloudscheduler.jobs.get - cloudscheduler.jobs.delete - pubsub.topics.list - pubsub.topics.create - pubsub.topics.update - secretmanager.secrets.list - secretmanager.versions.add - secretmanager.secrets.create - secretmanager.versions.list - secretmanager.secrets.getIamPolicy - secretmanager.secrets.setIamPolicy - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy - resourcemanager.projects.setIamPolicy - serviceusage.services.enable - iam.serviceAccounts.actAs - iam.serviceAccounts.list - iam.serviceAccounts.create - iam.serviceAccounts.getIamPolicy - iam.serviceAccounts.setIamPolicy - iam.roles.list - iam.roles.create - iam.roles.update - monitoring.dashboards.list - monitoring.dashboards.create
  2. Run the command below, replacing <your_project_ID> with the project ID where you want to deploy the Dynatrace integration.

    bash
    gcloud iam roles create dynatrace_monitor.cloud_function_deployment --project=<your_project_ID> --file=dynatrace-gcp-monitor-cloud-function-deployment-role.yaml

Note: Be sure to add this role to your GCP user. For details, see Grant or revoke a single role.

Dynatrace permissions

Create an API token and enable the following permissions:

  • API v1:
    • Read configuration
    • Write configuration
  • API v2:
    • Ingest metrics
    • Read extensions
    • Write extensions
    • Read extension monitoring configurations
    • Write extension monitoring configurations
    • Read extension environment configurations
    • Write extension environment configurations

Dynatrace URL

Determine the URL for your environment.

  • For Dynatrace SaaS: https://<your-environment-id>.live.dynatrace.com/
  • For Dynatrace Managed: https://<your-domain>/e/<your-environment-id>/

Note: To determine <your-environment-id>, see environment ID.

Install

You can deploy the Dynatrace GCP integration in Google Cloud Shell or in bash. To set up integration, follow the instructions below.

Note: For bash deployment, be sure to restart the console and initialize Cloud SDK before you start installation. To initialize Cloud SDK, run

plaintext
gcloud init

Download the deployment package

Configure deployment

Run the deployment script

Download the deployment package

bash
wget -q "https://github.com/dynatrace-oss/dynatrace-gcp-monitor/releases/latest/download/function-deployment-package.zip" -O function-deployment-package.zip; unzip function-deployment-package.zip; chmod a+x *.sh

Configure deployment

  1. Adjust the parameters in the activation-config.yaml file from the deployment package.

    Note: 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.

  2. Choose which services you want Dynatrace to monitor.

By default, the GCP integration starts monitoring a series of selected services. Uncomment any additional services you want Dynatrace to monitor in the activation-config.yaml file.

Note: For DDU consumption information, see Monitoring consumption.

Run the deployment script

Note: Version upgrade of extensions is done by default. To keep the versions of existing extensions, run the script with the --without-extensions-upgrade parameter.

bash
./setup.sh

Note: The script may ask you for confirmations during deployment. For CI/CD purposes, you can add the -d option to make the script noninteractive.

After deploying the integration, you can see metrics from monitored services. If you want to change the monitoring scope (services & featureSets) or update the GCP integration, see Change deployment settings below.

Verify installation

To check whether installation was successful

  1. In your Google Cloud console, go to Cloud Functions and make sure that dynatrace-gcp-monitor is there.
  2. Select the newly deployed GCP Monitor function and go to Logs to make sure there are no error messages.

Enable alerting

To activate alerting, you need to enable metric events for alerting in Dynatrace.

To enable custom events

  1. In the Dynatrace menu, go to Settings.
  2. In Anomaly detection, select Metric events.
  3. Filter for GCP alerts and turn on On/Off for the alerts you want to activate.

View enabled services

To find the list of currently enabled services, go to Cloud Function in your GCP console, and check the ACTIVATION_CONFIG environment variable.

Update services

Adding, removing and updating versions of existing services is done by modyfing the corresponding list of services and redeploying.

  1. Apply your changes to activation-config.yaml by commenting or uncommenting configuration blocks corresponding to specific services. Terminology within the file includes:

    • service: represents GCP service name you want to monitor. Services are grouped by extensions, but you can decide what you need to monitor on a lower level (featureSets)
    • featureSet: a set of metrics for a given service. default_metrics is a default featureSet with a recommended set of metrics to be monitored. In more specific use cases, you can consider monitoring such sets as istio featureSet for gae_instance service
    • filter_conditions: a service-level filter that enables you to narrow the monitoring scope. It is based on the GCP Monitoring filters.
      Example:
      yaml
      filter_conditions: resource.labels.location = "us-central1-c" AND resource.labels.namespace_name = "dynatrace"
  2. Update monitored services by running the script below.

    Note: Version upgrade of extensions is done by default. To keep the versions of existing extensions, run the script with the --without-extensions-upgrade parameter.

    bash
    ./setup.sh
  3. If you removed services from monitoring, find the relevant extensions in Dynatrace Hub (in the Dynatrace menu, go to Extensions) and delete them to remove service-specific assets (dashboards, alerts, etc).

Example

In the following example

  • The gae_instance service is disabled.
  • For the gce_instance service, only two feature sets are enabled: default_metrics and istio.
yaml
# Google App Engine Instance #- service: gae_instance # featureSets: # - default_metrics # vars: # filter_conditions: "" # Google VM Instance - service: gce_instance featureSets: - default_metrics # - agent # - firewallinsights - istio # - uptime_check vars: filter_conditions: ""

For a complete list of the GCP supported services, see Google Cloud Platform supported service metrics.

Change deployment settings

To add or remove services, or to update parameters, you need to redeploy the integration.

  1. Apply your changes to activation-config.yaml.

Note: Be sure to use the same value for the FUNCTION_NAME parameter as before.

  1. Rerun the deployment script.

Troubleshoot

To investigate potential deployment and connectivity issues

  1. Verify installation
  2. Enable self-monitoring optional
  3. 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.
  1. If you are contacting Dynatrace ONE:
    • 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 function logs.

Uninstall

  1. Go to your installation directory and run the command below.
bash
./uninstall.sh
  1. To remove all monitoring assets (dashboards, alerts, etc) from Dynatrace, you need to remove all GCP extensions.

To remove an extension

  1. In the Dynatrace menu, go to Extensions and search for the GCP extensions.
  2. 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

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).

Related topics
  • Set up Dynatrace on Google Cloud Platform

    Monitor Google Cloud Platform with Dynatrace.