Skip to main content

count_by_field

Teraslice processor to count a field using prometheus metrics.

Parameters

ConfigurationDescriptionTypeDefaultNotes
_opName of operationStringn/arequired
collect_metricsenable metric collectionBooleanfalse
fieldField to countStringnullrequired

Usage

Count Field in records based on a set field

This is an example of counting a field in a record based off a given field

Example Job

{
"name": "metric-count-by-field-example",
"lifecycle": "persistent",
"workers": 30,
"slicers": 1,
"assets": [
"standard:0.21.0",
"kafka:3.2.4"
],
"prom_metrics_enabled": true,
"prom_metrics_port": 3333,
"prom_metrics_add_default": false,
"external_ports": [
{
"name": "metrics",
"port": 3333
}
],
"labels": {
"scrape-target": "true"
},
"operations": [
{
"_op": "kafka_reader",
"topic": "test_topic_1",
"connection": "kafka_test1",
"group": "temp#metric-count-field-r1",
"size": 50000,
"wait": 5000
},
{
"_op": "count_by_field",
"field": "test_id",
"collect_metrics": true
},
{
"_op": "noop"
}
]
}

NOTE: prom_metrics_enabled must be set to true, either in the job or in the terafoundation config, for the metrics to be exported.

Example Metrics

curl /metrics end point to view metrics

curl -sS  127.0.0.1:3333/metrics
# HELP teraslice_job_count_by_field_count_total count_by_field field: test_id count
# TYPE teraslice_job_count_by_field_count_total counter
teraslice_job_count_by_field_count_total{test_id="1200",field="test_id",op_name="count_by_field",ex_id="a9999999-aaaa-9999-aaaa-99999999990",job_id="b9999999-bbbb-9999-bbbb-9999999999",job_name="metric-count-by-field-example",name="teraslice-test1",pod_name="ts-wkr-metric-count-by-field-example-bbbb"} 5002
teraslice_job_count_by_field_count_total{test_id="1201",field="test_id",op_name="count_by_field",ex_id="a9999999-aaaa-9999-aaaa-99999999990",job_id="b9999999-bbbb-9999-bbbb-9999999999",job_name="metric-count-by-field-example",name="teraslice-test1",pod_name="ts-wkr-metric-count-by-field-example-bbbb"} 5200
teraslice_job_count_by_field_count_total{test_id="1202",field="test_id",op_name="count_by_field",ex_id="a9999999-aaaa-9999-aaaa-99999999990",job_id="b9999999-bbbb-9999-bbbb-9999999999",job_name="metric-count-by-field-example",name="teraslice-test1",pod_name="ts-wkr-metric-count-by-field-example-bbbb"} 4896
teraslice_job_count_by_field_count_total{test_id="1203",field="test_id",op_name="count_by_field",ex_id="a9999999-aaaa-9999-aaaa-99999999990",job_id="b9999999-bbbb-9999-bbbb-9999999999",job_name="metric-count-by-field-example",name="teraslice-test1",pod_name="ts-wkr-metric-count-by-field-example-bbbb"} 5103