A streaming pipeline that transforms PubSub messages into metrics using Apache Beam
Project description
Beametrics
Let your logs be metrics in real-time with Apache Beam.
Beametrics transfers structured messages from a queue into metrics in real-time. Primarily designed to work with Cloud Pub/Sub to export metrics to Cloud Monitoring.
Usage
Direct Runner
$ python -m beametrics.main \
--project=YOUR_PROJECT_ID \
--subscription=projects/YOUR_PROJECT_ID/subscriptions/YOUR_SUBSCRIPTION \
--metric-name=YOUR_METRIC_NAME \
--metric-labels='{"LABEL": "HOGE"}' \
--filter-conditions='[{"field": "user_agent", "value": "dummy_data", "operator": "equals"}]' \
--runner=DirectRunner \
--metric-type=count \
--export-type=monitoring
Dataflow Runner
1. Build Docker image
$ docker build -t LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/beametrics:latest .
2. Push Docker image to Artifact Registry
$ docker push LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/beametrics:latest
3. Build Dataflow Flex Template
$ gcloud dataflow flex-template build gs://BUCKET/beametrics.json \
--image "LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/beametrics:latest" \
--sdk-language "PYTHON" \
--metadata-file "metadata.json"
4. Run Dataflow job
$ cat flags.yaml
--parameters:
project-id: YOUR_PROJECT_ID
subscription: projects/YOUR_PROJECT_ID/subscriptions/YOUR_SUBSCRIPTION
metric-name: YOUR_METRIC_NAME
metric-labels: '{"LABEL": "HOGE"}'
filter-conditions: '[{"field":"user_agent","value":"dummy_data","operator":"equals"}]'
metric-type: count
window-size: "120"
$ gcloud dataflow flex-template run "beametrics-job-$(date +%Y%m%d-%H%M%S)" \
--template-file-gcs-location gs://BUCKET/beametrics.json \
--region REGION \
--flags-file=flags.yaml
As a Dataflow Flex Template with external config file
$ cat flags_external_config.yaml
--parameters:
project-id: YOUR_PROJECT_ID
subscription: projects/YOUR_PROJECT_ID/subscriptions/YOUR_SUBSCRIPTION
window-size: "60"
config: gs://YOUR_BUCKET/YOUR_CONFIG_FILE.yaml
$ cat YOUR_CONFIG_FILE.yaml
metrics:
- name: beametrics-test-1
labels:
LABEL: HOGE1
dynamic_labels:
label_key: label_value
filter-conditions:
- field: user_agent
value: dummy_data
operator: equals
type: count
export_type: google-cloud-monitoring
- name: beametrics-test-2
labels:
LABEL: HOGE2
dynamic_labels:
label_key: label_value
filter-conditions:
- field: user_agent
value: dummy_data
operator: equals
type: count
export_type: local
$ gcloud dataflow flex-template run "beametrics-job-$(date +%Y%m%d-%H%M%S)" \
--template-file-gcs-location gs://BUCKET/beametrics.json \
--region REGION \
--flags-file=flags_external_config.yaml
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
beametrics-0.3.0.tar.gz
(9.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beametrics-0.3.0.tar.gz.
File metadata
- Download URL: beametrics-0.3.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.12.8 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c22e577eb35cb663f0f4d609fbcfb65d6df07cbff26b4931b7f92be738ad1936
|
|
| MD5 |
0f5f40929b33b7acd6e6b8c883fc2758
|
|
| BLAKE2b-256 |
ccfd772a73c27711a6b822befd1f20738002971d11a17903f1117192efa1ab2b
|
File details
Details for the file beametrics-0.3.0-py3-none-any.whl.
File metadata
- Download URL: beametrics-0.3.0-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.12.8 Linux/6.5.0-1025-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8248b1a860093a33615a350c1e7bf472b41aad22c5692b3cfe69c8a5ee22b3be
|
|
| MD5 |
2ff855728d4d0af53d680b029ccfc2a3
|
|
| BLAKE2b-256 |
515604fc774adc69fd5cbae8170b6fecc80bf3fa07b8aef2dfd2ce8159ecce00
|