MCPcopy Index your code
hub / github.com/elabit/robotmk

github.com/elabit/robotmk @v4.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.0.1 ↗ · + Follow
446 symbols 1,028 edges 66 files 2 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Robotmk

🚀 What is Robotmk?

Robotmk is the bridge technology between the testing tool Robot Framework and Checkmk.

Robotmk lets you run Robot Framework test cases periodically on test hosts to simulate arbitrary user actions on any interface: Web UIs, Desktop applications, REST APIs, databases, ...

It integrates these results into Checkmk services, giving you unprecedented visibility into the availability, performance, and functionality of your business applications - all this under a single monitoring interface: Checkmk.

It was developed during the pandemic 2020 by Simon Meggle as an "MKP" extension (Checkmk plugin package) and became quickly the most downloaded package on the Checkmk Exchange platform.

Since Checkmk 2.3, it is a natively integrated feature in Checkmk, now also called Synthetic Monitoring.


The two flavors of Robotmk

1. ✅ Integrated into Checkmk (since 2.3)

The recommended and actively maintained version is built into Checkmk under the name Synthetic Monitoring.

It can be used free of charge for up to 3 test services and up to 15 keywords.

Architecture:

  1. Checkmk Server: At least version 2.3 is required as a Checkmk server (Cloud or MSP version).
    Robotmk is not compatible with the RAW edition of Checkmk.
  2. Robotmk test hosts: Windows or Linux hosts on which the Robot Framework suites are to be executed by Robotmk.
  3. Checkmk Agent: supplemented in the Checkmk Agent Bakery with both the Robotmk Scheduler and the Agent Plugin, as well as the configuration file.
  4. Robotmk Scheduler: Spawned and supervised as a permanent subprocess of the Checkmk Agent ("extension").
    Responsible for the parallel execution of Robot Framework plans in their individual intervals.
  5. RCC: A command line tool which the scheduler uses to build individual Python environments for the individual suites.
    This allows to run an arbitrary number of test suites with completely different dependencies (Python, Nodejs, ...) without interferences.
  6. Robot Framework Suites: The scheduler executes these robot suites in the respective environments and pre-processes the results for the agent plugin.
  7. Robotmk Agent Plugin: similar to all other CMK agent plugins, this Plugin is called at the regular interval (1 minute).
    It reads the last result of all Suite executions and uses it to build the Robotmk sections for the agent output.

(Robotmk Dashboard, with kind permission from LGB, Landesvermessung und Geobasisinformation Brandenburg)


2. 📦 MKP Version (legacy)

The older MKP-based version is still available for Checkmk versions 2.3 and 2.4 and can be downloaded from the Checkmk Exchange.

⚠️ Notice: The MKP version will no longer be updated or maintained starting with Checkmk 2.5.


Learn & Explore

  • Synthetic Monitoring Product Page - Official Homepage of the Synthetic Monitoring Product of Checkmk
    https://checkmk.com/product/synthetic-monitoring
  • Checkmk Synthetic Monitoring Documentation
    https://docs.checkmk.com/latest/en/synthetic_monitoring.html
  • Robotmk Homepage, Blog & Training - Tutorials, technical articles and the Synthetic Monitoring training:
    https://robotmk.org
  • Examples Repository - Curated test cases and templates:
    Robotmk Examples on GitHub
  • Robot Framework - Learn more about the testing framework that powers Robotmk:
    https://robotframework.org
  • Robot Framework User Guide - Official Documentation
    https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

🎥 Talks & Presentations

Title Notes Event Link
Test like a Robot, Monitor like a Bavarian A talk of Sebstian Böhm and Maxi Sachmann from the City of Munich Checkmk Conference #11 (2025) https://youtu.be/dseJ9iLrzYI?t=7801
What's new in Synthetic Monitoring in CMK 2.4 Jörg Herbel and Simon Meggle Checkmk Conference #11 (2025) https://youtu.be/dseJ9iLrzYI?t=16019
Synthetic Monitoring of Geomap Applications Simon Meggle giving technical insights into a Robotmk customer project at LGB, Landesvermessung und Geobasisinformation Brandenburg Checkmk Conference #11 (2025) https://youtu.be/dseJ9iLrzYI?t=17339
Getting Started with Synthetic Monitoring Part 1 Checkmk Youtube Channel https://www.youtube.com/watch?v=1Ec8QwaJWXU
Integrating Robot Framework tests in Checkmk Part 2 Checkmk Youtube Channel https://www.youtube.com/watch?v=peo9SgN5ciY

Training

Get trained by Simon Meggle, the original creator of Robotmk and Product Manager of Checkmk Synthetic Monitoring.

In collaboration with Elabit GmbH and Checkmk, this comprehensive 4-day training is designed to take you from fundamentals to expert-level understanding of end-to-end monitoring with Robot Framework.

Training Highlights:

  • ✅ Robot Framework Fundamentals (= covering the preparation for the exam Robot Framework Certified Professional (RFCP))
  • ✅ Handling Python Runtime Environments
  • ✅ Writing robust CSS/XPath selectors
  • ✅ Web testing with the Browser Library (Playwright)
  • ✅ Successful testing of Desktop applications
  • ✅ Robotmk: Integration of Robot Framework into Checkmk

Check training dates and availability soon here: 👉 https://checkmk.com/trainings/schedule

Extension points exported contracts — how you extend this code

SetupStep (Interface)
(no doc) [15 implementers]
src/bin/scheduler/setup/steps/api.rs
WriteSection (Interface)
(no doc) [4 implementers]
src/section.rs
ContextUnrecoverable (Interface)
(no doc) [1 implementers]
src/termination.rs
WritePiggybackSection (Interface)
(no doc) [2 implementers]
src/section.rs

Core symbols most depended-on inside this repo

var
called by 34
tests/helper.rs
write
called by 18
src/section.rs
create_dir_all
called by 17
src/fs.rs
partition_into_rcc_and_other_plans
called by 11
src/bin/scheduler/setup/steps/mod.rs
results_directory
called by 10
src/results.rs
directory_entries
called by 10
tests/helper.rs
run_icacls_command
called by 9
src/bin/scheduler/setup/windows_permissions.rs
plans_by_sessions
called by 9
src/bin/scheduler/setup/steps/mod.rs

Shape

Function 251
Method 93
Class 73
Enum 25
Interface 4

Languages

Rust96%
Python4%

Modules by API surface

src/config.rs24 symbols
src/tasks/windows.rs22 symbols
src/env/conda.rs21 symbols
src/bin/scheduler/setup/steps/directories.rs19 symbols
tests/test_scheduler.rs18 symbols
src/results.rs16 symbols
src/command_spec.rs16 symbols
src/rf/robot.rs15 symbols
src/bin/scheduler/internal_config.rs15 symbols
src/bin/scheduler/setup/steps/rcc.rs14 symbols
src/bin/scheduler/scheduling/cleanup.rs12 symbols
src/termination.rs11 symbols

For agents

$ claude mcp add robotmk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact