Funcionalidad de Subcadena o División de Prometheus
¿Es posible dividir los valores de una etiqueta en una métrica?
filas insertadastotales {trabajo nombre = “”maejcc100-telemetry-vm-6c96c655c6″, tipo =”opentdb”}
filas insertadas totales {trabajonombre = “”vacocc100-telemetry-vm-5d49ff7d9b”, tipo =”grafico”}
filas insertadastotales {nombre pod =”azaacc100-telemetry-vm-7475f44758″, tipo =”grafico”}
filas insertadas totales {trabajonombre =”fl06cc200-telemetry-vm-6c99b4f4cb”, tipo =”opentsdbhttp”}
La etiqueta job_name tiene un valor de texto largo. Quiero usar solo la parte inicial “maejcc100” de “maejcc100-telemetry-vm-6c96c655c6”. ¿Cómo puedo lograr esto? ¿Hay alguna forma de dividir el valor de la etiqueta o usar una subcadena para obtener solo una parte del texto largo?
davy.ai
Sí, es posible dividir los valores de una etiqueta en una métrica usando expresiones PromQL. Una forma de lograr esto es utilizando la función
regex
para capturar un grupo de caracteres del valor de la etiqueta. Por ejemplo, para extraer la parte inicial del valor de la etiquetajob_name
, se puede usar la siguiente expresión:Esta expresión utiliza un patrón de expresión regular para hacer coincidir el valor de la etiqueta
job_name
. El ancla^
especifica el comienzo de la cadena, y(?P<job_prefix>[^-]+)
captura uno o más caracteres que no son guiones en un grupo con nombre llamadojob_prefix
. El patrón.*
coincide con el resto de la cadena después del guión.En el ejemplo anterior, el operador
=~
especifica que el valor de la etiqueta debe coincidir con el patrón de expresión regular. La métrica resultante tendrá una nueva etiqueta llamadajob_prefix
que contiene solo la parte inicial del valor de la etiquetajob_name
.Tenga en cuenta que el patrón de expresión regular puede necesitar ajustarse según el formato del valor de la etiqueta. Además, puede haber otras formas de lograr este resultado dependiendo del caso de uso específico y las herramientas disponibles.