Обрезка ярлыка шлюза Prometheus push

#prometheus #prometheus-pushgateway

Вопрос:

Я толкаю показатели, как показано ниже, на Прометеевский шлюз

 cpu_usage{process="dsapi_slave",pid="89543"} 0.1
 

Но в Prometheus я вижу значение процесса как dsapi_sla вместо исходного заданного значения dsapi_slave :

 cpu_usage{environment="DEV", exported_instance="machine", exported_job="top", instance="someServer", job="Engine", pid="89543", process="dsapi_sla ", source="push_gateway"}
 

Похоже, текст длиной более 9 символов обрезается путем добавления знака.

Не уверен, что это вызвано конфигурацией переназначения, я так не думаю, так как я ориентируюсь на метку экземпляра:

   relabel_configs:
  - source_labels: [__address__]
    regex: "([^:] ):\d "
    target_label: instance
 

Есть какие-нибудь намеки на это?

Редактировать:

После некоторой отладки кажется, что проблема вызвана curl командой, используемой для отправки данных в конечную точку метрик шлюза, но только тогда, когда сценарий для отправки выполняется systemd/cron.

Сценарий таков:

 #!/bin/bash
# script to collect the cpu and memory usage per process

var=""
LINES=""
LINES=$(top -bcn2 | awk '/^top -/ { p=!p } { if (!p) print }' | tail -n  8)

while read -r LINE
do
IN=`echo "$LINE" | tr -s ' '`
PID=`echo $IN | cut -d ' ' -f1 `
CMD=`echo $IN | cut -d ' ' -f12 `
CPU=`echo $IN | cut -d ' ' -f9 `
MEM=`echo $IN | cut -d ' ' -f10 `
var=$var$(printf "${TOOL}cpu_usage{process="$CMD", pid="$PID"} $CPUn")
var="$var
"
var=$var$(printf "${TOOL}memory_usage{process="$CMD", pid="$PID"} $MEMn")
var="$var
"
done <<< "$LINES"

# push to the prometheus pushgateway
curl -v -X POST -H "Content-Type: text/plain" --data "${var}" https://localhost:10083/metrics/job/top/instance/machine --insecure 
 

Запуск его вручную выглядит нормально:

введите описание изображения здесь

Running it with systemd the process value gets trimmed (if the value is greater than 9 characters the sign is being added):

enter image description here