Skip to content

Commit 9d5291c

Browse files
committed
feat: add deviceid for host attribution
Signed-off-by: Bence Csati <bence.csati@axoflow.com>
1 parent d5965e2 commit 9d5291c

File tree

5 files changed

+48
-11
lines changed

5 files changed

+48
-11
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ You can find guides per connector:
2828
| `AXOROUTER_TLS_MAX_VERSION` | No | - | Maximum TLS version to use |
2929
| `AXOROUTER_TLS_INCLUDE_SYSTEM_CA_CERTS_POOL` | No | `false` | Whether to include system CA certificates |
3030
| `AXOROUTER_TLS_INSECURE_SKIP_VERIFY` | No | `false` | Whether to skip TLS certificate verification |
31+
| `AXOCLOUDCONNECTOR_DEVICE_ID` | Yes | - | A service id that will be used to identify the cloud connector in Axoflow |
3132

3233
### Azure Provider
3334

connectors/aws/README.md

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,50 @@ There are many ways you can authenticate and use the CloudWatch service:
1111
### Using AWS Profile with a config file
1212

1313
```bash
14+
UUID_FULL=$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || python3 -c "import uuid; print(uuid.uuid4())")
15+
AXOCLOUDCONNECTOR_DEVICE_ID=$(echo "$UUID_FULL" | cut -d'-' -f1)
16+
1417
docker run --rm \
18+
-v "${STORAGE_DIRECTORY}":"${STORAGE_DIRECTORY}" \
1519
-e AWS_PROFILE="${AWS_PROFILE}" \
1620
-e AWS_REGION="${AWS_REGION}" \
1721
-e AWS_SDK_LOAD_CONFIG=1 \
1822
-e AXOROUTER_ENDPOINT="${AXOROUTER_ENDPOINT}" \
1923
-e STORAGE_DIRECTORY="${STORAGE_DIRECTORY}" \
24+
-e AXOCLOUDCONNECTOR_DEVICE_ID="${AXOCLOUDCONNECTOR_DEVICE_ID}" \
2025
-v "${HOME}/.aws:/cloudconnectors/.aws:ro" \
2126
ghcr.io/axoflow/axocloudconnectors:latest
2227
```
2328

2429
### Direct AWS credentials
2530

2631
```bash
32+
UUID_FULL=$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || python3 -c "import uuid; print(uuid.uuid4())")
33+
AXOCLOUDCONNECTOR_DEVICE_ID=$(echo "$UUID_FULL" | cut -d'-' -f1)
34+
2735
docker run --rm \
36+
-v "${STORAGE_DIRECTORY}":"${STORAGE_DIRECTORY}" \
2837
-e AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" \
2938
-e AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" \
3039
-e AWS_REGION="${AWS_REGION}" \
3140
-e AXOROUTER_ENDPOINT="${AXOROUTER_ENDPOINT}" \
3241
-e STORAGE_DIRECTORY="${STORAGE_DIRECTORY}" \
42+
-e AXOCLOUDCONNECTOR_DEVICE_ID="${AXOCLOUDCONNECTOR_DEVICE_ID}" \
3343
ghcr.io/axoflow/axocloudconnectors:latest
3444
```
3545

3646
### Using EC2 instance profile
3747

3848
```bash
49+
UUID_FULL=$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || python3 -c "import uuid; print(uuid.uuid4())")
50+
AXOCLOUDCONNECTOR_DEVICE_ID=$(echo "$UUID_FULL" | cut -d'-' -f1)
51+
3952
docker run --rm \
53+
-v "${STORAGE_DIRECTORY}":"${STORAGE_DIRECTORY}" \
4054
-e AWS_REGION="${AWS_REGION}" \
4155
-e AXOROUTER_ENDPOINT="${AXOROUTER_ENDPOINT}" \
4256
-e STORAGE_DIRECTORY="${STORAGE_DIRECTORY}" \
57+
-e AXOCLOUDCONNECTOR_DEVICE_ID="${AXOCLOUDCONNECTOR_DEVICE_ID}" \
4358
ghcr.io/axoflow/axocloudconnectors:latest
4459
```
4560

@@ -75,17 +90,22 @@ kubectl create secret generic aws-credentials \
7590
--namespace cloudconnectors \
7691
--dry-run=client -o yaml | kubectl apply -f -
7792

93+
UUID_FULL=$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || python3 -c "import uuid; print(uuid.uuid4())")
94+
AXOCLOUDCONNECTOR_DEVICE_ID=$(echo "$UUID_FULL" | cut -d'-' -f1)
95+
7896
helm upgrade --install --wait --namespace cloudconnectors cloudconnectors ./charts/cloudconnectors \
7997
--set image.repository="axocloudconnectors" \
8098
--set image.tag="dev" \
8199
--set 'env[0].name=AXOROUTER_ENDPOINT' \
82100
--set 'env[0].value=axorouter.axoflow-local.svc.cluster.local:4317' \
83-
--set 'env[1].name=AWS_REGION' \
84-
--set 'env[1].value=<YOUR-AWS-REGION>' \
85-
--set 'env[2].name=AWS_ACCESS_KEY_ID' \
86-
--set 'env[2].valueFrom.secretKeyRef.name=aws-credentials' \
87-
--set 'env[2].valueFrom.secretKeyRef.key=access-key-id' \
88-
--set 'env[3].name=AWS_SECRET_ACCESS_KEY' \
101+
--set 'env[1].name=AXOCLOUDCONNECTOR_DEVICE_ID' \
102+
--set 'env[1].value=${AXOCLOUDCONNECTOR_DEVICE_ID}' \
103+
--set 'env[2].name=AWS_REGION' \
104+
--set 'env[2].value=<YOUR-AWS-REGION>' \
105+
--set 'env[3].name=AWS_ACCESS_KEY_ID' \
89106
--set 'env[3].valueFrom.secretKeyRef.name=aws-credentials' \
90-
--set 'env[3].valueFrom.secretKeyRef.key=secret-access-key'
107+
--set 'env[3].valueFrom.secretKeyRef.key=access-key-id' \
108+
--set 'env[4].name=AWS_SECRET_ACCESS_KEY' \
109+
--set 'env[4].valueFrom.secretKeyRef.name=aws-credentials' \
110+
--set 'env[4].valueFrom.secretKeyRef.key=secret-access-key'
91111
```

connectors/azure/README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@ This directory contains the Axoflow Azure Event Hubs connector which helps colle
77
Make sure the required environment variables are set before running the connector.
88

99
```bash
10+
UUID_FULL=$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || python3 -c "import uuid; print(uuid.uuid4())")
11+
AXOCLOUDCONNECTOR_DEVICE_ID=$(echo "$UUID_FULL" | cut -d'-' -f1)
12+
1013
docker run \
1114
--rm \
1215
-v "${STORAGE_DIRECTORY}":"${STORAGE_DIRECTORY}" \
1316
-e AZURE_EVENT_HUBS_CONNECTION_STRING="${AZURE_EVENT_HUBS_CONNECTION_STRING}" \
1417
-e AXOROUTER_ENDPOINT="${AXOROUTER_ENDPOINT}" \
1518
-e STORAGE_DIRECTORY="${STORAGE_DIRECTORY}" \
19+
-e AXOCLOUDCONNECTOR_DEVICE_ID="${AXOCLOUDCONNECTOR_DEVICE_ID}" \
1620
ghcr.io/axoflow/axocloudconnectors:latest
1721
```
1822

@@ -33,12 +37,17 @@ kubectl create secret generic azure-event-hubs \
3337
--namespace cloudconnectors \
3438
--dry-run=client -o yaml | kubectl apply -f -
3539

40+
UUID_FULL=$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || python3 -c "import uuid; print(uuid.uuid4())")
41+
AXOCLOUDCONNECTOR_DEVICE_ID=$(echo "$UUID_FULL" | cut -d'-' -f1)
42+
3643
helm upgrade --install --wait --namespace cloudconnectors cloudconnectors ./charts/cloudconnectors \
3744
--set image.repository="axocloudconnectors" \
3845
--set image.tag="dev" \
3946
--set 'env[0].name=AXOROUTER_ENDPOINT' \
4047
--set 'env[0].value=axorouter.axoflow-local.svc.cluster.local:4317' \
41-
--set 'env[1].name=AZURE_EVENT_HUBS_CONNECTION_STRING' \
42-
--set 'env[1].valueFrom.secretKeyRef.name=azure-event-hubs' \
43-
--set 'env[1].valueFrom.secretKeyRef.key=connection-string'
48+
--set 'env[1].name=AXOCLOUDCONNECTOR_DEVICE_ID' \
49+
--set 'env[1].value=${AXOCLOUDCONNECTOR_DEVICE_ID}' \
50+
--set 'env[2].name=AZURE_EVENT_HUBS_CONNECTION_STRING' \
51+
--set 'env[2].valueFrom.secretKeyRef.name=azure-event-hubs' \
52+
--set 'env[2].valueFrom.secretKeyRef.key=connection-string'
4453
```

connectors/common-config.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ exporters:
2020
include_system_ca_certs_pool: ${env:AXOROUTER_TLS_INCLUDE_SYSTEM_CA_CERTS_POOL:-false}
2121
insecure_skip_verify: ${env:AXOROUTER_TLS_INSECURE_SKIP_VERIFY:-false}
2222

23+
processors:
24+
resource/axoflow_device_id:
25+
attributes:
26+
- key: "com.axoflow.device_id"
27+
action: insert
28+
value: ${env:AXOCLOUDCONNECTOR_DEVICE_ID}
29+
2330
extensions:
2431
health_check:
2532
endpoint: ${env:POD_IP}:13133
@@ -31,4 +38,5 @@ service:
3138
extensions: [health_check, file_storage]
3239
pipelines:
3340
logs:
41+
processors: [resource/axoflow_device_id]
3442
exporters: [otlp/axorouter]

makefile.d/20-tools.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ bin/actionlint-$(ACTIONLINT_VERSION): | $(BIN_DIR)
1313
| bash -s -- "$(ACTIONLINT_VERSION)" "$(BIN_DIR)"
1414
@mv bin/actionlint $@
1515

16-
1716
####
1817
## MiniKube
1918
####

0 commit comments

Comments
 (0)