Skip to content

linode/aclp-collector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ACLP Collector Config

This repository provides service-specific receiver configs for each supported service type. Use them as a reference to construct your own OpenTelemetry Collector config.yaml and start collecting metrics from your Akamai Cloud infrastructure.


Repository structure

aclp-collector/
├── configs/
│   ├── lke-enterprise/        # Linode Kubernetes Engine (Enterprise)
│   ├── logs/                  # Stream Audit Logs
│   ├── managed-databases/     # Managed database metrics
│   ├── nodebalancer/          # NodeBalancer metrics
│   └── objectstorage/         # Object storage metrics
├── config.yaml                # Sample full config — use as a reference
├── .gitignore
├── LICENSE
└── README.md

How to use

Each subfolder inside configs/ contains receiver configs for a specific Akamai Cloud(Linode) service. To start collecting metrics, construct your aclp-collector config by combining the following:

  • The akamaicloudpulsereceiver block from the service-specific config in this repo
  • Your own processors, exporters, and service pipeline based on your observability backend and requirements

The config.yaml at the root of this repo is a fully working reference example. It shows how the receiver, processors, exporters, and pipeline fit together. Use it as a starting point and replace the akamaicloudpulsereceiver block in the receiver section with one or more service configuration you need.

Steps

1. Clone the repo

git clone https://github.com/linode/aclp-collector.git
cd aclp-collector

2. Pick a service config

Browse the configs/ folder and choose the receiver config that matches the service you want to monitor. For example, for managed databases:

configs/managed-databases/dbaas-config-1.yaml

3. Construct your collector config

Copy the akamaicloudpulsereceiver block from the chosen service config into receiver section of your own config.yaml. Add your processors, exporters, and service pipeline. Use config.yaml in this repo as a reference for the full structure.

4. Set environment variables

We recommend that all sensitive values be read from environment variables and never hardcoded in the config files for example:

export OTEL_PAT="your-personal-access-token"
export OTEL_EXPORTER_ENDPOINT="https://your-backend:4317"

5. Run the collector

Commands to run the collector are mentioned in techdocs.

For example run your aclp-collector binary using,

./aclp-collector --config=<path/to/config.yaml>

Service configs

Each subfolder contains one or more receiver configs for that service type.

Service Folder Available configs
LKE Enterprise configs/lke-enterprise/ lke-config-1.yaml, lke-config-2.yaml, lke-config-3.yaml
Logs configs/logs/ logs-config-1.yaml, logs-config-2.yaml, logs-config-3.yaml
Managed databases configs/managed-databases/ dbaas-config-1.yaml, dbaas-config-2.yaml, dbaas-config-3.yaml
NodeBalancer configs/nodebalancer/ nodebalancer-config-1.yaml, nodebalancer-config-2.yaml, nodebalancer-config-3.yaml
Object storage configs/objectstorage/ objectstorage-config-1.yaml, objectstorage-config-2.yaml, objectstorage-config-3.yaml

Config tiers

Where multiple configs exist for a service, they follow this pattern:

Tier Description
config-1 Minimal metrics. Low overhead, good starting point
config-2 Config with multiple instances of same service-type to provide additional filters. Recommended for most deployments
config-3 Multiple instances of akamaicloudpulsereceiver — recommended when hitting rate limits or when you need metrics from multiple users in your account

akamaicloudpulsereceiver config structure

All service configs in this repo follow the same structure. Example configuration:

  akamaicloudpulsereceiver:
    polling_interval: "1m"       # How often metrics are scraped
    refresh_interval: "30m"      # How often the entity list is refreshed
    PAT: "${OTEL_PAT}"           # Personal Access Token 
    thread_pool_size: 80         # Concurrent polling threads
    services:
      - service_type: "dbaas"    # Akamai Cloud service type
        entity_ids: ["*"]        # "*" scrapes all entities; or specify IDs
        metric_names:
          - "memory_usage"
          - "disk_usage"
        agg_function: "avg"      # Aggregation: min, max, avg
        query_delay: "2m"        # Delay before querying to allow metric propagation
        group_by: ["entity_id"]  # Dimensions to group metrics by

Validating your config

Before deploying, validate that your constructed config is well-formed. If there are any issues, the collector will terminate on startup with an error.


License

Apache 2.0 — see LICENSE.

About

Sample OTel collector configs for aclp-collector

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors