Skip to content

Commit 46e705b

Browse files
committed
Addition of pcp2opentelemetry tool
Supports translation of pcp metrics into opentelemetry format. Supports opentelemetry protocol http json. Updated relevant qa tests; added one new one (1977) to test pcp2opentelemetry http functionality. Added man page and makefile. Includes updates and changes from review.
1 parent bf2dd4f commit 46e705b

File tree

11 files changed

+2026
-12
lines changed

11 files changed

+2026
-12
lines changed

build/rpm/pcp.spec.in

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,20 @@ Requires: python3-pcp = @package_version@
602602
Performance Co-Pilot (PCP) front-end tools for exporting metric values
603603
in OpenMetrics (https://openmetrics.io/) format.
604604

605+
#
606+
# pcp-export-pcp2opentelemetry
607+
#
608+
%package export-pcp2opentelemetry
609+
License: GPL-2.0-or-later
610+
Summary: Performance Co-Pilot tools for exporting PCP metrics in OpenTelemetry format
611+
URL: https://pcp.io
612+
Requires: pcp-libs >= @package_version@
613+
Requires: python3-pcp = @package_version@
614+
615+
%description export-pcp2opentelemetry
616+
Performance Co-Pilot (PCP) front-end tools for exporting metric values
617+
in OpenTelemetry (https://opentelemetry.io/) format.
618+
605619
#
606620
# pcp-export-pcp2spark
607621
#
@@ -2206,6 +2220,7 @@ basic_manifest | keep 'pcp2xlsx' >pcp-export-pcp2xlsx-files
22062220
basic_manifest | keep 'pcp2graphite' >pcp-export-pcp2graphite-files
22072221
basic_manifest | keep 'pcp2json' >pcp-export-pcp2json-files
22082222
basic_manifest | keep 'pcp2openmetrics' >pcp-export-pcp2openmetrics-files
2223+
basic_manifest | keep 'pcp2opentelemetry' >pcp-export-pcp2opentelemetry-files
22092224
basic_manifest | keep 'pcp2spark' >pcp-export-pcp2spark-files
22102225
basic_manifest | keep 'pcp2xml' >pcp-export-pcp2xml-files
22112226
basic_manifest | keep 'pcp2zabbix' >pcp-export-pcp2zabbix-files
@@ -2328,7 +2343,8 @@ done
23282343

23292344
for export_package in \
23302345
pcp2arrow pcp2elasticsearch pcp2graphite pcp2influxdb pcp2json \
2331-
pcp2openmetrics pcp2spark pcp2xlsx pcp2xml pcp2zabbix zabbix-agent ; \
2346+
pcp2openmetrics pcp2opentelemetry pcp2spark pcp2xlsx pcp2xml \
2347+
pcp2zabbix zabbix-agent; \
23322348
do \
23332349
export_packages="$export_packages pcp-export-$export_package"; \
23342350
done
@@ -3067,6 +3083,8 @@ fi
30673083

30683084
%files export-pcp2openmetrics -f pcp-export-pcp2openmetrics-files.rpm
30693085

3086+
%files export-pcp2opentelemetry -f pcp-export-pcp2opentelemetry-files.rpm
3087+
30703088
%files export-pcp2spark -f pcp-export-pcp2spark-files.rpm
30713089

30723090
%files export-pcp2xml -f pcp-export-pcp2xml-files.rpm

build/rpm/redhat.spec

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,21 @@ Requires: python3-pcp = %{version}-%{release}
812812
Performance Co-Pilot (PCP) front-end tools for exporting metric values
813813
in OpenMetrics (https://openmetrics.io/) format.
814814

815+
#
816+
# pcp-export-pcp2opentelemetry
817+
#
818+
%package export-pcp2opentelemetry
819+
License: GPL-2.0-or-later
820+
Summary: Performance Co-Pilot tools for exporting PCP metrics in OpenTelemetry format
821+
URL: https://pcp.io
822+
Requires: pcp-libs >= %{version}-%{release}
823+
%if !%{disable_python3}
824+
Requires: python3-pcp = %{version}-%{release}
825+
826+
%description export-pcp2opentelemetry
827+
Performance Co-Pilot (PCP) front-end tools for exporting metric values
828+
in OpenTelemetry (https://opentelemetry.io/) format.
829+
815830
#
816831
# pcp-export-pcp2spark
817832
#
@@ -2416,6 +2431,7 @@ basic_manifest | keep 'pcp2xlsx' >pcp-export-pcp2xlsx-files
24162431
basic_manifest | keep 'pcp2graphite' >pcp-export-pcp2graphite-files
24172432
basic_manifest | keep 'pcp2json' >pcp-export-pcp2json-files
24182433
basic_manifest | keep 'pcp2openmetrics' >pcp-export-pcp2openmetrics-files
2434+
basic_manifest | keep 'pcp2opentelemetry' >pcp-export-pcp2opentelemetry-files
24192435
basic_manifest | keep 'pcp2spark' >pcp-export-pcp2spark-files
24202436
basic_manifest | keep 'pcp2xml' >pcp-export-pcp2xml-files
24212437
basic_manifest | keep 'pcp2zabbix' >pcp-export-pcp2zabbix-files
@@ -2539,7 +2555,8 @@ done
25392555

25402556
for export_package in \
25412557
pcp2arrow pcp2elasticsearch pcp2graphite pcp2influxdb pcp2json \
2542-
pcp2openmetrics pcp2spark pcp2xlsx pcp2xml pcp2zabbix zabbix-agent ; \
2558+
pcp2openmetrics pcp2spark pcp2xlsx pcp2xml pcp2opentelemetry \
2559+
pcp2zabbix zabbix-agent ; \
25432560
do \
25442561
export_packages="$export_packages pcp-export-$export_package"; \
25452562
done
@@ -3257,6 +3274,8 @@ fi
32573274

32583275
%files export-pcp2openmetrics -f pcp-export-pcp2openmetrics-files.rpm
32593276

3277+
%files export-pcp2opentelemetry -f pcp-export-pcp2opentelemetry-files.rpm
3278+
32603279
%files export-pcp2spark -f pcp-export-pcp2spark-files.rpm
32613280

32623281
%files export-pcp2xml -f pcp-export-pcp2xml-files.rpm

qa/1131

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh
22
# PCP QA Test No. 1131
3-
# Exercise pcp2json and pcp2openmetrics.
3+
# Exercise pcp2json, pcp2openmetrics, and pcp2opentelemetry.
44
#
55
# Copyright (c) 2017 Red Hat.
66
#
@@ -51,6 +51,21 @@ _filter_pcp2openmetrics()
5151
| LC_COLLATE=POSIX sort
5252
}
5353

54+
_filter_pcp2opentelemetry()
55+
{
56+
tee -a $here/$seq.full \
57+
| col -b \
58+
| sed \
59+
-e '/\"asDouble\":/ s/[0-9][0-9]*/NCPU/' \
60+
-e 's/\"'$machineid'\"/MACHINEID/' \
61+
-e 's/\"'$hostname'\"/HOSTNAME/' \
62+
-e 's/\"'$domainid'\"/DOMAINID/' \
63+
-e 's/\"agent\": .*/\"agent\": \"'$OSTYPE'\"/' \
64+
-e 's/\"startTimeUnixNano\": .*/\"startTimeUnixNano\": TIME/' \
65+
-e 's/\"userid\": .*/\"userid\": USERID/' \
66+
-e 's/\"userid\": .*/\"userid\": GROUPID/'
67+
}
68+
5469
# real QA test starts here
5570
echo "---"
5671
pcp2json -a $A -H -I -z "" | _archive_filter
@@ -65,6 +80,8 @@ pcp2openmetrics -s1 -z hinv.ncpu | _filter_pcp2openmetrics
6580
echo "---"
6681
pcp2openmetrics -s2 -x hinv.ncpu | _filter_pcp2openmetrics
6782
echo "---"
83+
pcp2opentelemetry -s1 -H -z hinv.ncpu | _filter_pcp2opentelemetry
84+
echo "---"
6885

6986
cat $tmp.outfile | _archive_filter
7087
which json_verify > /dev/null 2>&1

0 commit comments

Comments
 (0)