Telomere lets you set a timer for any process - if it doesn’t complete in time, we trigger your webhooks or send alerts. Unlike most monitoring-centric tools, Telomere is designed as a flexible set of lifecycle primitives that let you model cron jobs, user sessions, deploys, and many others.
The original idea for Telomere came when we were managing a complex set of Airflow batch pipelines. Our alerting integration inside Airflow itself could fail to deliver if there was a problem with the pipeline code or our Airflow infrastructure. We added an external cron monitoring tool to help, but this split our alerts across multiple systems. Also, the cron monitoring would alert the following day if a pipeline started but died along the way.
There had to be a better way! We built Telomere which lets us solve this with “lifecycles” which are templates for different kinds of processes and “runs” which are instances of lifecycles. For the Airflow example above we can use two lifecycles to solve our core use case:
- Track the cron schedule for a daily batch process with a run of the “daily-pipeline-schedule” lifecycle, alerting if it doesn’t check in within an hour of the expected next start time.
- Track the daily batch process progress with a run of the “daily-pipeline-run” lifecycle, ensuring it completes within four hours and alerting if not. Any failures generate alerts right away.
Since there are no required cron schedules we can also keep track of processes that are started by external triggers that don’t run at specific times. These same ingredients can also be used for traditional monitoring use cases like service health checks and deployment tracking, which could be as simple as adding this to your deploy script:
# The prod-deploy lifecycle was created earlier via UI or API with a
# defined timeout.
RUN_ID=$(curl -X POST https://telomere.modulecollective.com/api/lifecycles/prod-deploy/runs \
-H "Authorization: Bearer $TELOMERE_API_KEY" | jq -r '.id')
# ... do the deploy
curl -X POST https://telomere.modulecollective.com/api/runs/$RUN_ID/end \
-H "Authorization: Bearer $TELOMERE_API_KEY"
Telomere can even be used for things totally unrelated to monitoring such as ephemeral resource cleanup. Check out the use cases documentation for details on some other cases like these.
Our goal is to keep Telomere a focused piece of software that services a vast number of use cases with a small set of core features so we can offer it at a great price. We offer a free tier with up to 750 runs per month and a $49/month paid tier with unlimited runs. Both paid and free tiers support teams, email alerts, and webhooks. Hopefully this hits a sweet spot for many developers where it’s not worth the hassle of building and running another service.
We are especially interested in hearing from users who have timeout use cases that aren’t served well by traditional monitoring tools. Sign up for Telomere, try it for free, and please reach out with any questions or feedback to hello@modulecollective.com!