PMDAOPENTELEMETRY(1) General Commands Manual PMDAOPENTELEMETRY(1) (NAME) pmdaopentelemetry - PMDA OpenTelemetry (SYNOPSIS) $PCP_PMDAS_DIR/opentelemetry/pmdaopentelemetry [-D] [-n] [-c config] [-d domain] [-l logfile] [-R refresh_timeout] [-r root] [-t timeout] [-u user] (DESCRIPTION) pmdaopentelemetry (PMDA) PCP (endpoints) OpenTelemetry HTTP . config $PCP_PMDAS_DIR/opentelemetry/config.d/ "CONFIGURATION SOURCES" . (timeout) URL 2 . (user) -u "pcp" . -n . (URL / ) . -D PMDA $PCP_LOG_DIR/pmcd/opentelemetry.log ( -l ). opentelemetry.control.debug : pmstore opentelemetry.control.debug value value 1 ( ) 0 ( ) . http . -d ( domain ) 164 . . domain PMDA domain PMDA pmdaopentelemetry . -r opentelemetry . -l logfile PMDA $PCP_LOG_DIR/pmcd/opentelemetry.log . logfile "-" stderr -l-. stderr pmcd(1) stderr . dbpmda(1) . -r opentelemetry root . pmdaopentelemetry PMDA . PMDA -d . -r . -R (timeout) (cluster refreshes) . 10 ..SH " (CONFIGURATION SOURCES)" pmdaopentelemetry $PCP_PMDAS_DIR/opentelemetry/config.d ( -c) URL (*.url) . .url - <> <<>> (common) . - PMDA URL . PMDA . PCP (instance domain) / PMDA . PMDA . PMDA . (URL SOURCES) .url URL HTTP HTTPS pmdaopentelemetry (endpoint) OpenTelemetry . URL file:///somepath/somefile somepath/somefile OpenTelemetry . .url URL . http GET . ':' () . # . HEADER: FILTER:. HEADER: headername: value ... to end of line headername (headers) http GET URL . : http://somehost/path/endpoint.html # this is a comment HEADER: Accept: text/html HEADER: Keep-Alive: 300 HEADER: Connection: keep-alive HEADER: Authorization: token ABCDEF1234567890 . . (trim) . (proxy agent) ..SH " (METRIC FILTERING)" ( ) . . : FILTER: INCLUDE METRIC regex FILTER: EXCLUDE METRIC regex regex . PMNS ( URL ) regex . . ( ) : FILTER: INCLUDE METRIC .* . FILTER: FILTER: EXCLUDE METRIC .* . FILTER: EXCLUDE METRIC regex. . ( ) FILTER: INCLUDE METRIC .* . (LABEL FILTERING) FILTER: . FILTER: EXCLUDE LABEL regex regex . - : FILTER: INCLUDE LABEL .* . FILTER: OPTIONAL LABEL regex ( ) . ( ) . ( OPTIONAL ) PM_LABEL_OPTIONAL notes . . pmLookupLabels(3) . . PCP . ( ) . URL . URL . . ( URL ) ( ) . PMDA ..SH " (SCRIPTED SOURCES)" $PCP_PMDAS_DIR/opentelemetry/config.d stdout OpenTelemetry URL . stderr PMDA $(PCP_LOG_DIR)/pmcd/opentelemetry.log . ( URL ) - sed(1) awk(1) . OpenTelemetry : https://github.com/open-telemetry/opentelemetry-proto blob/main/opentelemetry/proto/metrics/v1/metrics.proto. SELinux (SELinux CONSIDERATIONS) PMDA pmdaopentelemetry (context) SELinux pmcd(1) . . SELinux AVC . (unconfined) pmcd PMDA . SELinux . AVC audit2allow semodule : $ sudo grep '^type=AVC.*pcp' /var/log/audit/audit.log \ | audit2allow -M mypolicy $ sudo semodule -i mypolicy.pp RC pmcd ( /etc/pcp/pmcd/rc.local) . audit2allow(1) semodule(1) . (METRIC NAMING) JOB.* PCP opentelemetry.JOB . JOB (non-leaf) PMNS PCP . JOB PMNS JOB.response JOB.response.time . ( URL ) . $PCP_PMDAS_DIR/opentelemetry/config.d/mysource/latency/get.url ( URL ) opentelemetry.mysource.latency.get PCP . PCP ..SH " (DYNAMIC METRIC NAMES)" PMDA . PCP opentelemetry PMNS / . pmdaopentelemetry PMCD_NAMES_CHANGE pmFetch(3) . PCP . opentelemetry pmlogger(1) . PCP PMDA PMDA opentelemetry pmlogger . pmlogger(1) . pmlogger : log mandatory on 2 second { # log all metrics below the root of the opentelemetry namespace opentelemetry } (METADATA) URL opentelemetry PMDA . metric json opentelemetry . PCP pmLookupDesc(3) pmParseUnitsStr(3) . json (URL ) opentelemetry . URL / . URL (in-line) . : METADATA: regex type indom semantics units ... to EOL : METADATA: ( ) regex (extended regular expression) URL type PCP (32 u32 64 u64 float double) indom (instance domain) PM_INDOM_NULL semantics counter instant discrete units none pmParseUnitsStr(3), . /metrics Grafana localhost URL grafana_api_response_status_total type response counter units count . http://localhost:3000/metrics FILTER: INCLUDE METRIC grafana_api_response_status_total FILTER: EXCLUDE METRIC .* METADATA: grafana_api_response_status_total u32 response counter count indom PM_INDOM_NULL ( ) ..SH " (CONTROL METRICS)" PMDA . opentelemetry.control.debug (instance) . (counter semantics) opentelemetry.control.status (string) . opentelemetry.control URL . URL . (instance domain) opentelemetry.control . . opentelemetry.control.status . http 200 0 success . - URL . opentelemetry.control.status_code opentelemetry.control.status . 200 . zero . opentelemetry.control.status . opentelemetry.control.calls PMDA ( URL ) ( ). . opentelemetry.control.fetch_time (parse) . PMDA . opentelemetry.control.parse_time . PMDA . calls ( ) . fetch_time parse_time () . opentelemetry.control.debug 0 . pmstore(1) (log) PMDA . (LIMITATIONS) pmdaopentelemetry libpcp (4095) (1024) (4194304) ..SH " (INSTALLATION)" PMDA OpenTelemetry Install (root) : # cd $PCP_PMDAS_DIR/opentelemetry # ./Install : # cd $PCP_PMDAS_DIR/opentelemetry # ./Remove pmdaopentelemetry pmcd(1) . Install Remove pmcd (agent) . .url PMDA - PMDA . (FILES) $PCP_PMDAS_DIR/opentelemetry/Install pmdaopentelemetry $PCP_PMDAS_DIR/opentelemetry/Remove pmdaopentelemetry $PCP_PMDAS_DIR/opentelemetry/config.d/ (URL) pmdaopentelemetry opentelemetry . $PCP_LOG_DIR/pmcd/opentelemetry.log pmdaopentelemetry $PCP_VAR_DIR/config/164.* ( 164). PCP (PCP ENVIRONMENT) PCP_ PCP . /etc/pcp.conf . $PCP_CONF pcp.conf(5) . (SEE ALSO) PCPIntro(1), audit2allow(1), pmcd(1), pminfo(1), pmlogger(1), pmdaopenmetrics(1), pmstore(1), PMWEBAPI(3), pmFetch(3), pmLookupLabels(3), semodule(1) Performance Co-Pilot PCP PMDAOPENTELEMETRY(1)