Google Cloud Platform - GCP API Extractor

Use the Google Cloud Platform - GCP API Extractor to collect configuration and performance data of your virtual machines that are provisioned in the Google Cloud Platform (GCP) cloud. The collected data is used for analyzing and optimizing the capacity of your Google Cloud infrastructure.

Related topics

Entities, lookup information, and metrics for Google Cloud Platform

Collecting additional metrics using the Stackdriver monitoring

Google Cloud Platform documentation Open link

Collecting data by using the GCP API ETL

To collect data by using the GCP API ETL, do the following tasks:

I. Complete the preconfiguration tasks.

II. Configure the ETL.

Step I. Complete the preconfiguration tasks

Before you configure and run the ETL, complete the pre-configuration tasks. The ETL uses the service account key files to collect data from your Google Cloud Platform project resources.

You can create a service account in one of the following ways:

  • Create a single service account and share it across multiple GCP projects.
  • Create a separate service account for each GCP project.

Depending on how you create your service account, select a tab, and complete the steps:

Step Details
Subscribe to the Google Cloud Platform.

    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. Select your email preferences, accept the terms of service, and click Agree and continue.
    3.  Sign up for a free trial or apply for a paid subscription.

Create projects to manage virtual machine instances, billing, and Cloud Platform services.

All the Google Cloud Platform resources, such as Google Compute Engine virtual machines, Google Cloud Storage buckets, and Google App Engine instances are grouped under a project. Projects are required for using all Cloud Platform services, managing APIs, enabling billing, adding and removing collaborators, and managing permissions.


    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. On the title bar, next to Google Cloud Platform, click Select a project.

      If you have already created projects and updated any of them, the name of the last project that you worked on is displayed besides Google Cloud Platform. In this scenario, click the project name.

    3. Click New project. In the Project name field, specify a name for your project. The project ID is generated automatically.
    4. Click Create.
    5. On the upper-left corner of the page, click Select a project or the project name next to Google Cloud Platform. Your recently created project name is displayed in the list.
    6. Select the project, and click Open.
      The project dashboard is displayed, and you can start working in the project.

Create a billing account.

A billing account is a payment profile that contains payment-related settings, such as payment method and a billing address. Each project is attached to a billing account, and any costs that are incurred for the project are added to the billing account. Multiple projects can be attached to a single billing account.

    1. Log in to the Google Cloud Console with your Google account credentials.
    2. In the left navigation pane, click Billing > Manage billing accounts.
    3. If this is your first billing account, complete the following steps. Otherwise, go to step 4.
      1. Click Add billing account.
      2. On the Try Cloud Platform for free page, specify your country, accept the terms of service, and click Agree and continue.
      3. On the customer information page, add the details, such as account type, tax status, name and contact, and the credit card number.
      4. Click Start my free trial.
        If the specified details such as card number are correct, a confirmation message about the generation of the billing account is displayed.
    4. If you already have some existing billing accounts and want to create a new billing account, complete these steps:
      1. Click Create account.
      2. In the Name field, specify a name for the billing account, and click Continue.
      3. Verify your country and currency, and click Confirm.
      4. On the payments profile page, enter your billing information, such as account type, tax status, name and address, credit card details, and click Submit and enable billing.
      5. On the verification page, enter the 3-letter CVV number that is on the back of your card, and click Continue.
        The billing account is created and is added to the list of existing billing accounts.

Create a service account. The ETL uses the service account to connect to the Google Cloud Platform.
    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. From the title bar, select the project in which you want to create the service account. You can share this service account for multiple projects.
    3. From the left navigation pane, click IAM & admin > Service accounts.
    4. Click Create Service Account.
    5. On the Create service account page, complete these steps:
      1. Specify a name for the service account.
        The service account ID is generated automatically when you enter the service account name.
      2. (Optional) Specify the service account description.
      3. Click Create.
      4. On Service Account Permissions page, click Continue.
      5. Click Create Key, and retain the default selection as JSON for the key type.
      6. Click Create.
        The settings are saved, and a confirmation message is displayed. The private key for the account is saved in a service account key json file and saved to your computer.

        Ensure that you save this key file securely. If this file is lost or tampered, you need to create a new key.

      7. From the saved json file, copy the email address from the client_email field and save it for the future reference. Alternatively, you can also copy the email address from the Service accounts page on the Google Cloud Platform console.
    6. For each Google Cloud project for which you want the GCP API ETL to collect data by using the shared service account, complete these steps:
      1. From the title bar, select the project.
      2. From the left navigation pane, click IAM & admin > IAM.
      3. On the Permissions for project page, click Add.
      4. On the Add members to project page, in New members field, specify the email address of the shared service account that you have copied in the earlier steps.
      5. In the Role field, add the Project > Viewer role. This role provides read access to all the resources.
      6. Click Add Another Role, and select Compute Engine > Compute Viewer. This role provides read-only access to Compute Engine resources.
      7. Click Add Another Role, and select Monitoring > Monitoring Viewer. This role provides read-only access to monitoring and configuration data.

      8. Save the changes.
Add the email addresses of the service accounts for the projects (projects that are linked to the billing account) to the billing account, and assign the Billing Account Viewer role to each service account that you want to use for the ETL.

    1. Log in to the Google Cloud Console with your Google account credentials.
    2. In the left navigation pane, click Billing.
    3. From the All billing accounts dropdown list select the billing account that is linked to your projects.
    4. In the right pane, click SHOW INFO PANEL and do the following:
      1. In the Add members field, add the email address of the shared service account that you have created in earlier steps.
      2. From the Select a role list, select Billing > Billing Account Viewer.
      3. Click Add.
        The settings are saved, and a confirmation message is displayed.
Enable the APIs and services for each project to collect data.

    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. In the left navigation pane, click APIs and services > Dashboard. A list of APIs that are enabled is displayed.
    3. Ensure that the following APIs are enabled:
      1. Cloud Billing API
      2. Google Cloud APIs
      3. Stackdriver Monitoring API
      4. Cloud Resource Manager API
    4. If the APIs are disabled, perform these steps to enable them:
      1. Click Enable APIs and Services.
      2. Search for the required APIs, select them, and click Enable.

        If your setup is behind a firewall, ensure that the ETL can access the following API endpoints:

        Additionally, if you encounter issues with API requests due to 1e100.net domain, include it in the firewall allow rules.

Create a Stackdriver account and install the monitoring agent.

You can use the Monitoring agent to collect additional data such as metrics and logs from third-party applications. Before installing the Monitoring agent, you must create and enable a Stackdriver account.

For information about how to create a Stackdriver account, see Collecting additional metrics using the Stackdriver monitoring.

Ensure that the time is correctly set on the host where the ETL engine runs.
BMC recommends to use the Network Time Protocol (NTP) client and synchronize the host clock with the network time server.

Step Details

Subscribe to the Google Cloud Platform.


    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. Select your email preferences, accept the terms of service, and click Agree and continue.
    3.  Sign up for a free trial or apply for a paid subscription.

Create projects to manage virtual machine instances, billing, and Cloud Platform services.

All the Google Cloud Platform resources, such as Google Compute Engine virtual machines, Google Cloud Storage buckets, and Google App Engine instances are grouped under a project. Projects are required for using all Cloud Platform services, managing APIs, enabling billing, adding and removing collaborators, and managing permissions.


    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. On the title bar, next to Google Cloud Platform, click Select a project.

      If you have already created projects and updated any of them, the name of the last project that you worked on is displayed besides Google Cloud Platform. In this scenario, click the project name.

    3. Click New project. In the Project name field, specify a name for your project. The project ID is generated automatically.
    4. Click Create.
    5. On the upper-left corner of the page, click Select a project or the project name next to Google Cloud Platform. Your recently created project name is displayed in the list.
    6. Select the project, and click Open.
      The project dashboard is displayed, and you can start working in the project.

Create a billing account.

A billing account is a payment profile that contains payment-related settings, such as payment method and a billing address. Each project is attached to a billing account, and any costs that are incurred for the project are added to the billing account. Multiple projects can be attached to a single billing account.

    1. Log in to the Google Cloud Console with your Google account credentials.
    2. In the left navigation pane, click Billing > Manage billing accounts.
    3. If this is your first billing account, complete the following steps. Otherwise, go to step 4.
      1. Click Add billing account.
      2. On the Try Cloud Platform for free page, specify your country, accept the terms of service, and click Agree and continue.
      3. On the customer information page, add the details, such as account type, tax status, name and contact, and the credit card number.
      4. Click Start my free trial.
        If the specified details such as card number are correct, a confirmation message about the generation of the billing account is displayed.
    4. If you already have some existing billing accounts and want to create a new billing account, complete these steps:
      1. Click Create account.
      2. In the Name field, specify a name for the billing account, and click Continue.
      3. Verify your country and currency, and click Confirm.
      4. On the payments profile page, enter your billing information, such as account type, tax status, name and address, credit card details, and click Submit and enable billing.
      5. On the verification page, enter the 3-letter CVV number that is on the back of your card, and click Continue.
        The billing account is created and is added to the list of existing billing accounts.

Create a service account. The ETL uses the service account to connect to Google Cloud Platform.
    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. From the title bar, select the project for which you want to create the service account.
    3. From the left navigation pane, click IAM & admin > Service accounts.
    4. Click Create Service Account.
    5. On the Create service account page, complete these steps:
      1. Specify a name for the service account.
        The service account ID is generated automatically when you enter the service account name.
      2. (Optional) Specify the service account description.
      3. Click Create.
      4. On the Service Account Permissions page, select Compute Engine > Compute Viewer. This role provides read-only access to Compute Engine resources.
      5. Click Add Another Role, and select Monitoring > Monitoring Viewer. This role provides read-only access to monitoring and configuration data. Click Continue.
      6. Click Create Key, and retain the default selection as JSON for the key type.
      7. Click Create.
        The settings are saved, and a confirmation message is displayed. The private key for the account is saved in a service account key json file and downloaded to your computer.
        Repeat this procedure for each new Google Cloud Project for which you want to collect the performance data.

        Ensure that you save this key file securely. If this file is lost or tampered, you need to create a new key.


Add the email addresses of the service accounts for the projects (projects that are linked to the billing account) to the billing account, and assign the Billing Account Viewer role to each service account that you want to use for the ETL.

    1. Log in to the Google Cloud Console with your Google account credentials.
    2. In the left navigation pane, click Billing.
    3. Click ALL BILLING ACCOUNTS and then select the billing account that is linked to your projects.
    4. In the right pane, click SHOW INFO PANEL and do the following:
      1. In the Add members field, add the email addresses of the service accounts that you have created for each project in earlier steps.
      2. From the Select a role list, select Billing > Billing Account Viewer.
      3. Click Add.
        The settings are saved, and a confirmation message is displayed.

Enable the APIs and services for each project to collect data.


    1. Log in to the Google Cloud Platform console with your Google account credentials.
    2. In the left navigation pane, click APIs and services > Dashboard. A list of APIs that are enabled is displayed.
    3. Ensure that the following APIs are enabled:
      1. Cloud Billing API
      2. Google Cloud APIs
      3. Stackdriver Monitoring API
      4. Cloud Resource Manager API
    4. If the APIs are disabled, perform these steps to enable them:
      1. Click Enable APIs and Services.
      2. Search for the required APIs, select them, and click Enable.

        If your setup is behind a firewall, ensure that the ETL can access the following API endpoints:

        • Billing: cloudbilling.googleapis.com
        • Stackdriver logging: logging.googleapis.com
        • Stackdriver monitoring: monitoring.googleapis.com
        • Cloud Resource manager: cloudresourcemanager.googleapis.com
        • Compute engine: compute.googleapis.com
        • Storage bucket: storage-component.googleapis.com
        • Authentication: oauth2.example.com, www.googleapis.com

        Additionally, if you encounter issues with API requests due to 1e100.net domain, include it in the firewall allow rules.

Create a Stackdriver account and install the monitoring agent.

You can use the Monitoring agent to collect additional data such as metrics and logs from third-party applications. Before installing the Monitoring agent, you must create and enable a Stackdriver account.

For information about how to create a Stackdriver account, see Collecting additional metrics using the Stackdriver monitoring.

Ensure that the time is correctly set on the host where the ETL engine runs.
BMC recommends to use the Network Time Protocol (NTP) client and synchronize the host clock with the network time server.


Step II. Configure the ETL

You must configure the ETL to connect to GCP for data collection. ETL configuration includes specifying the basic and optional advanced properties. While configuring the basic properties is sufficient, you can optionally configure the advanced properties for additional customization.

A. Configuring the basic properties

Some of the basic properties display default values. You can modify these values if required.

To configure the basic properties:

  1. Navigate to Administration ETL & System Tasks > and select ETL tasks.
  2. On the ETL tasks page, click Add > Add ETL under the Last run tab. The Add ETL page displays the configuration properties. You must configure properties in the following tabs: Run configuration, Entity catalog, and Google Cloud configuration
  3. On the Run configuration tab, select Google Cloud Platform - GCP API Extractor from the ETL module list. The name of the ETL is displayed in the ETL task name field. You can edit this field to customize the name.

  4. Click the Entity catalog tab, and select one of the following options:
    • Shared Entity Catalog: Select if other ETLs access the same entities that are used by the GCP API ETL.

      • From the Sharing with Entity Catalog list, select the entity catalog name that is shared between ETLs.
    • Private Entity Catalog: Select if this is the only ETL that extracts data from the GCP resources.
  5. Click the Google Cloud configuration tab, and configure the following properties:

    PropertyDescription
    Service account key file directory

    Do the following to upload the service account key files:

    1. Create a folder and copy the service account key files of projects to this folder.
    2. Compress the folder by using a compression utility.
    3. Click Choose file to browse and select this compressed folder (.zip), and click Upload.
      The names of the service account key files are displayed after successful upload.

    When you run the ETL, it uses the service account key files (files that are in the valid JSON format) to collect data from your GCP project resources. For a single service account key file, the ETL collects data from all the projects that use this service account.

    Business Service hierarchy

    If you want to view data of your GCP resources by business services, retain the default selection of Create Business Service hierarchy based on specified tag key. Specify the appropriate tag key name. For example, service.

    Example scenario:
    You have VMs that are tagged as follows:

      • AS1: {user=John, Purpose=Dev, Service=Data Solutions}
      • vl-pun-bco-qa35: {user=Adam, Purpose=Production, Service=Data Solutions}
      • vl-pun-bco-qa20: {user=Jane, Purpose=QA, Service=Data Solutions}

    When you run the ETL, data is displayed in a hierarchy as follows:

    If you do not use business services, data is displayed as follows:

  6. (Optional) Override the default values of properties in the following tabs:

    PropertyDescription
    Execute in simulation modeBy default, the ETL execution in simulation mode is selected to validate connectivity with the data source, and to ensure that the ETL does not have any configuration issues. In the simulation mode, the ETL does not load data into the database. This option is useful when you want to test a new ETL task. To run the ETL in the production mode, select No.
    BMC recommends that you run the ETL in the simulation mode after ETL configuration and then run it in the production mode.

    PropertyDescription
    Associate new entities to

    Specify the domain to which you want to add the entities created by the ETL.

    Select one of the following options:

    • New domain: This option is selected by default. Select a parent domain, and specify a name for your new domain.
    • Existing domain: Select an existing domain from the Domain list. 

    By default, a new domain with the same ETL name is created for each ETL. 

    PropertyDescription
    Task groupSelect a task group to classify the ETL.
    Running on schedulerSelect a compatible scheduler for running the ETL. See following note on compatible scheduler.
    Maximum execution time before warningIndicates the number of hours, minutes, or days for which the ETL must run before generating warnings or alerts, if any.
    Frequency

    Select one of the following frequencies to run the ETL:

    • Predefined: This is the default selection. Select a daily, weekly, or monthly frequency, and then select a time to start the ETL run accordingly.
      • Start timestamp: hour\minute: Select the HH:MM start timestamp to add to the ETL execution running on a Predefined frequency.
    • Custom: Specify a custom frequency, select an appropriate unit of time, and then specify a day and a time to start the ETL run.
      • Custom start timestamp: Select a YYYY-MM-DD HH:MM timestamp to add to the ETL execution running on a Custom frequency.

    *Schedulers compatible with this ETL: Generic scheduler (the scheduler preconfigured in Helix, also referred as Cloud ETL Engine), Remote ETL Engine.

  7. Click Save.

  8. The details of the newly configured GCP API ETL are displayed.

(Optional) B. Configuring the advanced properties

You can configure the advanced properties to change the way the ETL works or to collect additional metrics.

To configure the advanced properties:

  1. On the Add ETL page, click Advanced.
  2. Configure the following properties:

    PropertyDescription
    Run configuration nameSpecify the name that you want to assign to this ETL task configuration. The default configuration name is displayed. You can use this name to differentiate between the run configuration settings of ETL tasks.
    Deploy statusSelect the deploy status for the ETL task. For example, you can initially select Test and change it to Production after verifying that the ETL run results are as expected.
    Description A short description of the ETL module.
    Log levelSpecify the level of details that you want to include in the ETL log file. Select one of the following options:
    • 1 - Light: Select to add the bare minimum activity logs to the log file.
    • 5 - Medium: Select to add the medium-detailed activity logs to the log file.
    • 10 - Verbose: Select to add detailed activity logs to the log file.

    Use log level 5 as a general practice. You can select log level 10 for debugging and troubleshooting purposes.

    PropertyDescription
    Metric profile selection

    Select the metric profile that the ETL must use. The ETL collects data for the group of metrics that is defined by the selected metric profile.

    • Use Global metric profile: This is selected by default. All the out-of-the-box ETLs use this profile.
    • Select a custom metric profile: Select the custom profile that you want to use from the Custom metric profile list. This list displays all the custom profiles that you have created.

    For more information about metric profiles, see Adding and managing metric profiles.

    Levels up to

    Specify the metric level that defines the number of metrics that can be imported into the database. The load on the database increases or decreases depending on the selected metric level.

    To learn more about metric levels, see Adding and managing metric profiles.

    PropertyDescription
    List of properties

    Specify additional properties for the ETL that act as user inputs during run. You can specify these values now or you can do so later by accessing the "You can manually edit ETL properties from this page" link that is displayed for the ETL in the view mode.

    1. Click Add.
    2. In the etl.additional.prop.n field, specify an additional property.
    3. Click Apply.
      Repeat this task to add more properties.

    PropertyDescription
    Empty dataset behaviorSpecify the action for the loader if it encounters an empty dataset:
    • Warn: Generate a warning about loading an empty dataset.
    • Ignore: Ignore the empty dataset and continue parsing.
    Maximum number of rows for CSV outputA numeric value to limit the size of the output files.
    Remove domain suffix from datasource name (Only for systems) Select True to remove the domain from the data source name. For example, server.domain.com will be saved as server. The default selection is False.
    Leave domain suffix to system name (Only for systems)Select True to keep the domain in the system name. For example: server.domain.com will be saved as is. The default selection is False.
    Skip entity creation (Only for ETL tasks sharing lookup with other tasks)

    Select True if you do not want this ETL to create an entity and discard data from its data source for entities not found in Continuous Optimization. It uses one of the other ETLs that share a lookup to create a new entity. The default selection is False.

    PropertyDescription
    Hour maskSpecify a value to run the task only during particular hours within a day. For example, 0 – 23 or 1, 3, 5 – 12.
    Day of week maskSelect the days so that the task can be run only on the selected days of the week. To avoid setting this filter, do not select any option for this field.
    Day of month maskSpecify a value to run the task only on the selected days of a month. For example, 5, 9, 18, 27 – 31.
    Apply mask validationSelect False to temporarily turn off the mask validation without removing any values. The default selection is True.
    Execute after timeSpecify a value in the hours:minutes format (for example, 05:00 or 16:00) to wait before the task is run. The task run begins only after the specified time is elapsed.
    EnqueueableSpecify whether you want to ignore the next run command or run it after the current task. Select one of the following options:
    • False: Ignores the next run command when a particular task is already running. This is the default selection.
    • True: Starts the next run command immediately after the current running task is completed.

  3. Click Save.
    The details of the newly configured GCP API ETL are displayed.

Step III. Run the ETL

After you configure the ETL, you can run it to collect data. You can run the ETL in the following modes:

A. Simulation mode: Only validates connection to the data source, does not collect data. Use this mode when you want to run the ETL for the first time or after you make any changes to the ETL configuration.

B. Production mode: Collects data from the data source.

A. To run the ETL in the simulation mode

To run the ETL in the simulation mode:

  1. Navigate to Administration ETL & System Tasks, and select ETL tasks.
  2. On the ETL tasks page, click the ETL. The ETL details are displayed.


  3. In the Run configurations table, click Edit  to modify the ETL configuration settings.
  4. On the Run configuration tab, ensure that the Execute in simulation mode option is set to Yes, and click Save.
  5. Click Run active configuration. A confirmation message about the ETL run job submission is displayed.
  6. On the ETL tasks page, check the ETL run status in the Last exit column.
    OK Indicates that the ETL ran without any error. You are ready to run the ETL in the production mode.
  7.  If the ETL run status is Warning, Error, or Failed:
    1. On the ETL tasks page, clickin the last column of the ETL name row.
    2. Check the log and reconfigure the ETL if required.
    3. Run the ETL again.
    4. Repeat these steps until the ETL run status changes to OK.

B. To run the ETL in the production mode

You can run the ETL manually when required or schedule it to run at a specified time.

To run the ETL manually

  1. On the ETL tasks page, click the ETL. The ETL details are displayed.
  2. In the Run configurations table, click Edit  to modify the ETL configuration settings. The Edit run configuration page is displayed.
  3. On the Run configuration tab, select No for the Execute in simulation mode option, and click Save.
  4. To run the ETL immediately, click Run active configuration. A confirmation message about the ETL run job submission is displayed.
    When the ETL runs, it collects data from the source and transfers it to the BMC Helix Continuous Optimization database.

To schedule the ETL run in the production mode

By default, the ETL is scheduled to run daily. You can customize this schedule by changing the frequency and period of running the ETL.

To configure the ETL run schedule:

  1. On the ETL tasks page, click the ETL, and click Edit task. The ETL details are displayed.
  2. On the Edit task page, do the following, and click Save:

    • Specify a unique name and description for the ETL task.
    • In the Maximum execution time before warning field, specify the duration for which the ETL must run before generating warnings or alerts, if any.
    • Select a predefined or custom frequency for starting the ETL run. The default selection is Predefined.
    • Select the task group to which you want to assign the ETL task.
  3. Click Schedule. A message confirming the scheduling job submission is displayed.
    When the ETL runs as scheduled, it collects data from the source and transfers it to the BMC Helix Continuous Optimization database.

Step IV. Verify data collection

Verify that the ETL ran successfully and check whether the GCP data is refreshed in the Workspace.

To verify whether the ETL ran successfully

  1. Click Administration > ETL and System Tasks > ETL tasks.
  2. In the Last exec time column corresponding to the ETL name, verify that the current date and time are displayed.
  3. In the Last exit column corresponding to the ETL name, verify that the status is OK.
    In case of WARNING or ERROR, click  in the last column of the ETL name row to review the log files.

To verify that the GCP data is refreshed:

  1. In the Workspace tab, expand (domain name) > Business Services > (system name) > Instances.
  2. In the left pane, verify that the hierarchy displays your new and updated GCP instances.
  3. Click a GCP virtual machine instance, and click the Metrics tab in the right pane.
  4. Check if the Last Activity column in the Configuration data and Performance metrics tables displays the current date.

To learn more about these metrics and other related concepts, see Entities, lookup information, and metrics for Google Cloud Platform. To collect additional data such as metrics and logs from third-party applications, see Collecting additional metrics using the Stackdriver monitoring.


Was this page helpful? Yes No Submitting... Thank you

Comments