Supported OS
This check monitors OctoPrint through the Datadog Agent.
Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the Autodiscovery Integration Templates for guidance on applying these instructions.
To install the OctoPrint check on your host by running:
sudo -u dd-agent -- datadog-agent integration install datadog-octoprint== <VERSION>
Copy
Note : The VERSION
is listed at the top of this page.
Install the developer toolkit on any machine.
Run ddev release build octoprint
to build the package.
Download the Datadog Agent .
Upload the build artifact to any host with an Agent and
run datadog-agent integration install -w path/to/octoprint/dist/datadog_octoprint*.whl
.
From the OctoPrint web interface, create an API key for use with Datadog. This can be found within Settings –> Application Keys.
Edit the octoprint.d/conf.yaml
file, in the conf.d/
folder at the root of your Agent’s configuration directory. Paste the OctoPrint API key as the value for octo_api_key
. See the sample octoprint.d/conf.yaml for all available configuration options.
Restart the Agent .
Run the Agent’s status subcommand and look for octoprint
under the Checks section.
By default this integration assumes that you are using the OctoPi image that is pre-configured to run OctoPrint from a Raspberry Pi.
The logs that it collects by default (and their default locations) are:
OctoPrint App log: /home/pi/.octoprint/logs
OctoPrint Webcam log: /var/log/webcamd.log
HA Proxy log: /var/log/haproxy.log
Any or all of these may be changed or removed by modifying the integration’s conf.yaml
file.
OctoPrint uses its own log format (not an object format). To make use of the logs, create a log processing pipeline with some parsing rules, for example:
Main Pipeline: “OctoPrint”Sub Pipeline 1: “OctoPrint Print Job”Grok parser rule: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(":"," ,")}
Sub Pipeline 2: “General OctoPrint Log”Grok parser rule:General_OctoPrint_Log %{date("yyyy-MM-dd HH:mm:ss,SSS"):date}\s+-\s+%{notSpace:source}\s+-\s+%{word:level}\s+-\s+%{data:message}
For more information, see the Datadog Log Processing documentation .
octoprint.rpi_core_temp (gauge)Temp (in C) of Raspberry Pi CoreShown as degree celsius octoprint.printer_state (gauge)Current state of OctoPrintShown as operation octoprint.est_print_time (gauge)Estimated print time of current jobShown as minute octoprint.pct_completed (gauge)Percentage of current Print job completedShown as percent octoprint.print_job_time (gauge)Elapsed print timeShown as minute octoprint.print_job_time_left (gauge)Estimated remaining print timeShown as minute octoprint.current_tool_temp (gauge)Temp (in C) of each extruderShown as degree celsius octoprint.target_tool_temp (gauge)Target Temp (in C) of each extruderShown as degree celsius octoprint.current_bed_temp (gauge)Temp (in C) of each printer bedShown as degree celsius octoprint.target_bed_temp (gauge)Target Temp (in C) of each extruderShown as degree celsius
OctoPrint does not include any events.
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
Need help? Contact Datadog support .