Docs » Get started with the Splunk Distribution of the OpenTelemetry Collector » Collector deployment tools and options » Deploy the Collector with Pivotal Cloud Foundry

Deploy the Collector with Pivotal Cloud Foundry ๐Ÿ”—

Use Pivotal Cloud Foundry (PCF) to deploy the Collector.

There are three deployment options:

  • BOSH release: The Collector is deployed to the PCF environment as a standalone deployment.

  • Cloud Foundry Buildpack: This integration installs and runs the Collector as a sidecar to your app. In this configuration, the Collector runs in the same container as the app.

  • Tanzu Tile: The Tanzu Tile is a packaged release of the Collector that can be integrated into Pivotal Ops Manager. The Tanzu Tile allows you to download, install, run, configure, and update the Collector from the Ops Manager.

    Note that the Tanzu tile version 0.81 or higher supports the following services:

    • Tanzu Application Service (TAS) versions 3 and 4

    • VMware Tanzu Operations Manager version 3

    • Stemcells (Ubuntu Jammy) version 1.148

    Tile version 0.78.1 only supports TAS version 2.

BOSH release ๐Ÿ”—

If deployed using the BOSH release, the Collector acts as a nozzle to Loggregator Firehose , which is one of the architectures Cloud Foundry uses to emit logs and metrics.

Dependencies ๐Ÿ”—

The release script requires:

  • The BOSH CLI , which is the command line tool used for interacting with all things BOSH, from deployment operations to software release management.

  • wget to retrieve content from web servers.

  • jq to process JSON files.

Release and deploy the Collector ๐Ÿ”—

Use the release script to generate a new release with the latest version of the Splunk Distribution of OpenTelemetry Collector. The script must be run in the BOSH release directory of the Collector repository, or it will not work. This repository has the necessary dependencies for the release to contain its necessary components.

bosh -d splunk-otel-collector deploy deployment.yaml

The script uses the variables described in the following table:

Variables ๐Ÿ”—

Variable

Description

Default

OTEL_VERSION

The version of the Collector to deploy as a part of this release.

latest. The valid version must be higher than version 0.48.0.

SMART_AGENT_VERSION

The version of the SignalFx Smart Agent to download. This is a dependency of the Collector SignalFx receiver.

latest

BOSH_RELEASE_VERSION

The version of the BOSH release being created.

false (0), if not specified. Any release except the first release should have a pre-set value.

IS_DEV_RELEASE

Boolean (int). If this variable is set, this script creates the release locally. If this variable is set to true, the script can be used in development.

false (0)

UPLOAD_RELEASE

Boolean (int). If this variable is set to true, the script uploads the release to the BOSH Director, which is primarily used for the GitHub workflow for testing.

true (1)

See configuration examples .

Deploy the Collector using a YAML file ๐Ÿ”—

Run the following command to deploy the Collector using the deployment.yaml file:

bosh -d splunk-otel-collector deploy deployment.yaml

The following is an example deployment.yaml file:

name: splunk-otel-collector

releases:
  - name: splunk-otel-collector
    version: latest

stemcells:
  - alias: default
    os: ubuntu-bionic
    version: latest

update:
  canaries: 1
  max_in_flight: 1
  canary_watch_time: 1000-30000
  update_watch_time: 1000-30000

instance_groups:
  - name: splunk-otel-collector
    instances: 1
    azs: [z1, z2]
    jobs:
      - name: splunk-otel-collector
        release: splunk-otel-collector
        properties:
          cloudfoundry:
            rlp_gateway:
              endpoint: "https://log-stream.sys.<TAS environment name>.cf-app.com"
              shard_id: "otelcol"
              tls:
                insecure_skip_verify: false
            uaa:
              endpoint: "https://uaa.sys.<TAS environment name>.cf-app.com"
              username: "..."
              password: "..."
              tls:
                insecure_skip_verify: false
          splunk:
            access_token: "..."
            realm: "..."
    vm_type: default
    stemcell: default
    networks:
      - name: default

To include a custom Collector configuration for the deployment, use a custom configuration file, as shown in the following example:

name: splunk-otel-collector

releases:
  - name: splunk-otel-collector
    version: latest

stemcells:
  - alias: default
    os: ubuntu-bionic
    version: latest

update:
  canaries: 1
  max_in_flight: 1
  canary_watch_time: 1000-30000
  update_watch_time: 1000-30000

instance_groups:
  - name: splunk-otel-collector
    instances: 1
    azs: [z1, z2]
    jobs:
      - name: splunk-otel-collector
        release: bosh
        properties:
          otel:
            config_yaml: |
              receivers:
                cloudfoundry:
                  rlp_gateway:
                    endpoint: "https://log-stream.sys.<TAS environment name>.cf-app.com"
                  uaa:
                    endpoint: "https://uaa.sys.<TAS environment name>.cf-app.com"
                    username: "..."
                    password: "..."

              exporters:
                signalfx:
                  access_token: "..."
                  realm: "..."

              processors:
                resourcedetection:
                  detectors: [ system ]

              service:
                pipelines:
                  metrics:
                    receivers: [ cloudfoundry ]
                    processors: [ resourcedetection ]
                    exporters: [ signalfx ]

    vm_type: default
    stemcell: default
    networks:
      - name: default

Learn more ๐Ÿ”—

See the following GitHub repos and files:

Cloud Foundry Buildpack ๐Ÿ”—

The Cloud Foundry Buildpack deploys the Collector as a sidecar for the actual app being deployed. The Collector is able to observe the app as a nozzle to the Loggregator Firehose, seeing all metrics and logs sent to the Loggregator Firehose as long as itโ€™s running.

Dependencies ๐Ÿ”—

  • wget

  • jq

Install the pack and deploy the Collector ๐Ÿ”—

To install the Buildpack:

  • Clone the Collectorโ€™s Buildpack GitHub repository .

  • Go to the newly created repo.

  • Run the following command to add the Buildpack for the Collector:

cf create-buildpack otel_collector_buildpack . 99 --enable

Learn more ๐Ÿ”—

See the following GitHub repos and files:

Tanzu Tile ๐Ÿ”—

The Tanzu tile uses the BOSH release to deploy the Collector as a nozzle to Loggregator Firehose .

Note that the Tanzu tile version 0.81 or higher supports the following services:

  • Tanzu Application Service (TAS) versions 3 and 4

  • VMware Tanzu Operations Manager version 3

  • Stemcells (Ubuntu Jammy) version 1.148

Tile version 0.78.1 only supports TAS version 2.

Dependencies ๐Ÿ”—

The release script requires:

Release and deploy the Collector ๐Ÿ”—

Run the following command to create the BOSH release packaged as a dependency of the Tanzu tile, and build the tile.

./make-latest-tile

If the command is successful, you can find the tile in ./product/splunk-otel-collector-<VERSION>.pivotal.

Learn more ๐Ÿ”—

See the following GitHub repos and files: