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.
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:
Variable |
Description |
Default |
---|---|---|
|
The version of the Collector to deploy as a part of this release. |
|
|
The version of the SignalFx Smart Agent to download. This is a dependency of the Collector SignalFx receiver. |
|
|
The version of the BOSH release being created. |
|
|
Boolean (int). If this variable is set, this script creates the release locally. If this variable is set to |
|
|
Boolean (int). If this variable is set to |
|
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:
The Collectorโs BOSH release repo
The Collectorโs development guide for PCF BOSH
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:
The BOSH CLI
The Tile generator
wget
jq
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:
The Collectorโs Tanzu Tile GitHub repo