Datadog OctoPrint

Supported OS Linux

Versión de la integración1.0.0

Información general

Este check monitoriza OctoPrint a través del Datadog Agent.

Configuración

Sigue las instrucciones a continuación para instalar y configurar este check para un Agent que se ejecuta en un host. Para entornos en contenedores, consulta las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de estas instrucciones.

Instalación

Para instalar el check de OctoPrint en tu host ejecutando:

sudo -u dd-agent -- datadog-agent integration install datadog-octoprint==<VERSION>

Nota: La dirección VERSION figura en la parte superior de esta página.

Instalar desde la fuente (opcional)

  1. Instala el kit de herramientas para desarrolladores en cualquier máquina.

  2. Ejecuta ddev release build octoprint para crear el paquete.

  3. Descarga el Datadog Agent.

  4. Sube el artefacto de compilación a cualquier host con un Agent y ejecuta datadog-agent integration install -w path/to/octoprint/dist/datadog_octoprint*.whl.

Configuración

  1. Desde la interfaz web de OctoPrint, crea una clave de API para utilizarla con Datadog. Puedes encontrarla en Settings –> Application Keys (Configuración –> Claves de aplicación).

  2. Edita el archivo octoprint.d/conf.yaml, en la carpeta conf.d/ en la raíz de tu directorio de configuración del Agent. Pega la clave de API de OctoPrint como valor de octo_api_key. Consulta el octoprint.d/conf.yaml de ejemplo para conocer todas las opciones disponibles de configuración.

  3. Reinicia el Agent.

Validación

Ejecuta el subcomando de estado del Agent y busca octoprint en la sección Checks.

Logs

Por defecto, esta integración asume que estás utilizando la imagen OctoPi que está preconfigurada para ejecutar OctoPrint desde Raspberry Pi.

Los logs que recopila por defecto (y su localizaciones por defecto) son:

  • Log de la aplicación de OctoPrint: /home/pi/.octoprint/logs
  • Log de la cámara web de OctoPrint: /var/log/webcamd.log
  • Log de proxy HA: /var/log/haproxy.log

Cualquiera de estos elementos, o todos ellos, pueden cambiarse o eliminarse modificando el archivo conf.yaml de la integración.

Procesamiento de logs

OctoPrint utiliza su propio formato de log (no un formato de objeto). Para hacer uso de los logs, crea un pipeline de procesamiento de logs con algunas reglas de parseo, por ejemplo:

  1. Pipeline principal: “OctoPrint”
    1. Pipeline secundario 1: “OctoPrint Print Job”
      1. Regla del analizador Grok:
        • OctoPrint_Print_Job %{date("yyyy-MM-dd HH:mm:ss,SSS"):date}\s+-\s+%{notSpace:source}\s+-\s+%{word:level}\s+-\s+Print\s+job\s+%{notSpace:job_status}\s+-\s+%{data::keyvalue(":"," ,")}
    2. Pipeline secundario 2: “General OctoPrint Log”
      1. Regla del analizador Grok:
        • General_OctoPrint_Log %{date("yyyy-MM-dd HH:mm:ss,SSS"):date}\s+-\s+%{notSpace:source}\s+-\s+%{word:level}\s+-\s+%{data:message}

Para más información, consulta la documentación de procesamiento de logs de Datadog.

Datos recopilados

Métricas

octoprint.rpi_core_temp
(gauge)
Temp (in C) of Raspberry Pi Core
Shown as degree celsius
octoprint.printer_state
(gauge)
Current state of OctoPrint
Shown as operation
octoprint.est_print_time
(gauge)
Estimated print time of current job
Shown as minute
octoprint.pct_completed
(gauge)
Percentage of current Print job completed
Shown as percent
octoprint.print_job_time
(gauge)
Elapsed print time
Shown as minute
octoprint.print_job_time_left
(gauge)
Estimated remaining print time
Shown as minute
octoprint.current_tool_temp
(gauge)
Temp (in C) of each extruder
Shown as degree celsius
octoprint.target_tool_temp
(gauge)
Target Temp (in C) of each extruder
Shown as degree celsius
octoprint.current_bed_temp
(gauge)
Temp (in C) of each printer bed
Shown as degree celsius
octoprint.target_bed_temp
(gauge)
Target Temp (in C) of each extruder
Shown as degree celsius

Eventos

OctoPrint no incluye ningún evento.

Checks de servicio

octoprint.search
CRITICAL if the page can’t be accessed, WARNING if the search string isn’t found, or OK otherwise.
Statuses: ok, warning, critical

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el soporte de Datadog.