<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[LivePing - Medium]]></title>
        <description><![CDATA[Cron and Heartbeat Monitoring - Medium]]></description>
        <link>https://medium.com/liveping?source=rss----3141e7118d85---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>LivePing - Medium</title>
            <link>https://medium.com/liveping?source=rss----3141e7118d85---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 07:13:25 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/liveping" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Shutting Down LivePing]]></title>
            <link>https://medium.com/liveping/shutting-down-liveping-9ea6b2569a7?source=rss----3141e7118d85---4</link>
            <guid isPermaLink="false">https://medium.com/p/9ea6b2569a7</guid>
            <category><![CDATA[shutdown]]></category>
            <category><![CDATA[side-project]]></category>
            <category><![CDATA[product]]></category>
            <dc:creator><![CDATA[Darwin D Wu]]></dc:creator>
            <pubDate>Sun, 19 Jan 2020 03:58:11 GMT</pubDate>
            <atom:updated>2020-01-19T07:01:37.859Z</atom:updated>
            <content:encoded><![CDATA[<p>LivePing started as a side project in early 2019.</p><p>At first, I was just trying to deal with the pain handling Cron tasks and offline workers, and looking into existing solutions wasn’t very satisfying. Building a prototype was relatively easy since the concept itself was simple.</p><p>The foundation of the project was done in a couple days, a couple evenings after work and BOOM! 💥 MVP completed. After that, it was just adding a small feature here and there every week or two.</p><h3>Mistakes 🈲</h3><p>A few weeks later, after talking to a colleague which I don’t recall what the exact conversations were, I got excited and thought it was a good idea to launch it as a service and make it publicly available.</p><blockquote>I know how to launch a service. What could possibly go wrong, right?</blockquote><p>Allow me to share some of the mistakes I’ve made.</p><h4>Pre-Optimization</h4><p>After deciding to publicly launch the product, a ton of engineering work suddenly showed up.</p><ul><li>Sign up / Login</li><li>Authentication</li><li>Authorization</li><li>Access Controls</li><li>API designs</li></ul><p>etc.</p><p>So far in my career, I’m lucky to have been able to work with and learn from engineers that would try to do things <em>“the right way”</em>. Which is extremely important when working with multiple engineering teams on an established product. However, that’s not the right approach for a product in an early stage.</p><p>My mind has been so biased towards the <em>“right engineering approaches”</em> that I’ve been ignoring what actually matters.</p><blockquote>Just get it out of the door, talk to people and iterate</blockquote><p>As a result, it cost me months instead of weeks before putting the product before people’s eyes, just because I wanted to do a fancy Typescript React Front-End with a Rails API and using Procotol Buffers for communication, because I don’t want to maintain the API schema. I over engineered the infrastructure as well and while it can scale well, it has become a financial burden because doing things the right way is not cheap.</p><p>To be honest, it did help catch a lot of issues when doing some major schema changes. Oh, and did I mentioned that my colleague actually tried to DDoS the service and it withhold? Pretty impressive right? But it doesn’t matter, it’s still solving the wrong problems at the stage it was in.</p><h4>Underestimating the amount of work outside of engineering</h4><p>Being an engineer and knowing engineers, we tend to think that building a good product will automatically get us customers and the rest will be history. While there are some portion of truth to it, having a good product will likely give you some advantages over your competitors, it’s definitely not going to take over the world just like that.</p><p>After making LivePing public, I started looking into landing pages, marketing, SEOs, in-corporation, accounting, etc..</p><p>There’s a lot of work besides just coding something out and throwing it on the internet, and I’ve seriously underestimated that. And critically enough, I’ve done it in the wrong order. Building a product, then market it was a complete waste of effort and time, especially when there’s not even a close to guarantee that the product will be what you think it would become.</p><p>Positive side, while I’ve never really thought that other jobs would be easier than mine (maybe a little bit :P), I’ve learned to really appreciate the work of the people in marketing, sales and all the other departments that operates and runs a company. Experiences like this makes you more humble and I think I understand why a lot of successful CEOs have a humble mindset now.</p><h4>Not verifying the market size</h4><p>Business is about people and solving their problems. Verifying the needs and pains your product solve is the first step which most people knows, clearly. However, another important portion that tends to get overlooked is the size of the market.</p><p>Sure, the product is solving a pain, I’ve conducted user interviews before deciding to make it an actual product, and there already are competitors in the field so that helps me verify that there are need for such a tool. But if the market is not big enough, it might not be worth the effort pursuing.</p><p>Trying to make $1000 in a $10,000 market vs a $1,000,000 market is a huge difference. Neither will be easy, but the effort required for the former could be way higher than the latter, resulting in the cost and effort of trying to grow the product becoming higher than the rewards.</p><p>In the past couple months, I’ve learned that the market LivePing is in are one of those markets that efforts can be greater than rewards, hence making it harder justifying the additional effort to be put into the service.</p><blockquote>You might be thinking, “Clearly you’re not doing a good enough job of researching the market beforehand, otherwise you’ve known”.</blockquote><p>While I do admit that I did ran with optimism, it’s also hard to know when and what is <em>“good enough”</em>. I’ve come to learn that, there’s never going to be a <em>“good enough”</em> because at some point, you’ll just have to run with it and learn while doing so. Knowing the border between research vs action is kind of an art, and it’s different for everyone. On top of that, knowing when to withdraw is even harder because there will always be some level of emotional attachment to your product. Hence, knowing those borders requires experience, and LivePing had taught me that in the hard way.</p><p>In hindsight, even though I knew all these principles from reading famous startup books, I still committed the same mistakes that people tell you not to. And because of the mistakes, I’ve wasted a lot of time and money which otherwise, I didn’t have to.</p><p>Another interesting aspect was that mistakes can have compounding effects on your motivation, and will put your passion to the test. Turns out, I don’t have as much passion as I thought I had for developer tooling after all and it was a precious insight that I would not have known unless having been put on the spot.</p><h3>End of Life 🌆</h3><p>LivePing will be shutting down at the end of February 2020.</p><p>Any active subscriptions will be cancelled and payments that extends beyond the end date will be refunded on a pro rata basis.</p><p>If you’re looking for alternatives for your workloads, here are some options available.</p><ul><li><a href="https://cronitor.io/">Cron monitoring and uptime monitoring for websites and APIs - Cronitor</a></li><li><a href="https://healthchecks.io/">Free Cron Job Monitoring - Healthchecks.io</a></li></ul><p>I apologies for the inconvenience, and like to thank you for trying out LivePing. One of the positives that came out of this experience was being able to experience the joy of seeing someone else using something I’ve built from scratch, and receiving feedback for it. It’s fulfilling in a different kind of way compared to having a full time job working on an established product.</p><p>While there’s nothing specific on the pipeline for the next project, I’m likely not going to be working on developer tooling for business anymore, and will be looking at other industries where I’ve confirmed my passion.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9ea6b2569a7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/liveping/shutting-down-liveping-9ea6b2569a7">Shutting Down LivePing</a> was originally published in <a href="https://medium.com/liveping">LivePing</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[November 2019 Updates]]></title>
            <link>https://medium.com/liveping/november-2019-updates-fb9ed330882a?source=rss----3141e7118d85---4</link>
            <guid isPermaLink="false">https://medium.com/p/fb9ed330882a</guid>
            <category><![CDATA[monitoring]]></category>
            <category><![CDATA[cron]]></category>
            <category><![CDATA[heartbeat]]></category>
            <dc:creator><![CDATA[LivePing]]></dc:creator>
            <pubDate>Tue, 10 Dec 2019 02:28:54 GMT</pubDate>
            <atom:updated>2019-12-10T02:28:54.483Z</atom:updated>
            <content:encoded><![CDATA[<p>Hope everyone had a great Thanksgiving! Here are what changed during the last month after the <a href="https://medium.com/liveping/launching-liveping-ae480954f52f">launch announcement</a>.</p><h3>New</h3><h4><strong>Documentation for LivePIng</strong></h4><p>We’ve added documentation regarding usage of LivePing and how to interact with alert integrations. These are frequently asked questions so we hope it helps clarify things better.</p><h4><strong>PagerDuty integration</strong></h4><p>We have implemented PagerDuty integration so you can get paged for Ping violations. The integration app has been reviewed and officially approved by PagerDuty. Here are the docs for integrating PagerDuty.</p><p><a href="https://www.liveping.io/docs/integrations/pagerduty">https://www.liveping.io/docs/integrations/pagerduty</a></p><p>PagerDuty integration is only available in paid plans.</p><h4>Custom Webhook integration</h4><p>LivePing can now send custom webhooks as alerts. If you have an endpoint that accepts webhooks, you can use the Custom Webhook integration for sending alerts to your system. This is useful if you have a tool that you’re using for checking alerts but it’s not officially supported by us yet.</p><p>We have populated the default payload when you try to create a webhook integration, but you can modify it to whatever you want as long as it’s valid JSON.</p><p><a href="https://www.liveping.io/docs/integrations/webhook">https://www.liveping.io/docs/integrations/webhook</a></p><p>Custom webhook are available for all plans including Free.</p><h4>Grace Period for Alerting</h4><p>Pings can now set a grace period before sending out alerts. This is particularly useful for heartbeat monitoring where intervals could vary and might not always check-in within the pre-defined interval. Alerting on a slightly late heartbeat could result in floppy alerts. Grace periods will help resolve that problem.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/519/1*vqjIBF4I9rmCpAP9x48ykw.png" /><figcaption>Edit modal for a Ping</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/619/1*WJd0cSt_b7kekgr1XNKfUg.png" /><figcaption>You can see the grace period from the Ping details as well</figcaption></figure><p>The way that Grace Period works is it will ignore up to the number of times for missed check-ins. In the example above, that number would be 5 and based on the interval being set to every 2 minutes, the grace period for this example would be 10 minutes. If the the workload continues to not check-in for 10 minutes straight, then alerts will start firing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4QIsUayflvHTUN2uKVCnuQ.png" /><figcaption>Grace period status from the Ping list page</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/552/1*AzUyWKtva8g-jbZxndllmQ.png" /><figcaption>Grace period status from the Ping detail page</figcaption></figure><p>When a Ping is stepping into the grace period, you would be able to see it on the UI as a yellow bell icon.</p><p>That’s it for November updates. Happy holidays and hope you enjoy the last month of 2019!</p><p>See you in 2020!</p><p>Feel free to contact us for questions and inquiries at <a href="http://info@liveping.io/">info@liveping.io</a>.</p><p>We’re accepting <a href="https://forms.gle/h5JZwE3hP6BbRM6x6">feature requests</a>!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fb9ed330882a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/liveping/november-2019-updates-fb9ed330882a">November 2019 Updates</a> was originally published in <a href="https://medium.com/liveping">LivePing</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Launching LivePing (日本語)]]></title>
            <link>https://medium.com/liveping/launching-liveping-ja-df5a0c9f111f?source=rss----3141e7118d85---4</link>
            <guid isPermaLink="false">https://medium.com/p/df5a0c9f111f</guid>
            <category><![CDATA[saas]]></category>
            <category><![CDATA[cron]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[monitoring]]></category>
            <dc:creator><![CDATA[Darwin D Wu]]></dc:creator>
            <pubDate>Mon, 11 Nov 2019 07:00:19 GMT</pubDate>
            <atom:updated>2019-11-11T07:00:18.976Z</atom:updated>
            <content:encoded><![CDATA[<p><a href="https://ja.wikipedia.org/wiki/Crontab">Cron</a>、Unix系統のオペレーティング・システムならどれでも内蔵されている定時実行のスケジュール管理システム。</p><p>ソフトウェアの会社なら、必ず使ってると言っても過言ではない普遍的な素晴らしい技術です。しかし、実行中にエラーが発生した時はいったい何が起こるんでしょうか。。？</p><h3>Silent Failure</h3><p>ここ数ヶ月は、自分のためのサイドプロジェクトに取り掛かっていて、そしてできたものをしばらく使っていました。ある程度公開しても大丈夫な仕様になりましたので、ぜひ見てみてください。</p><p><a href="https://www.liveping.io/">LivePing</a></p><figure><img alt="liveping landing page" src="https://cdn-images-1.medium.com/max/1024/1*ogEFxI7YlQ4HiWsghEBKrA.png" /><figcaption>LivePingのlanding page</figcaption></figure><p>LivePingは一言で言うと死活監視のためのシステムです。ただ、死活監視と言っても大きくは、</p><ul><li>外部ネットワークからチェックできるUptime Monitoring</li><li>ネットワークからそもそもアクセスできない代わりに、自身がシステムを通知するHeartbeat Monitoring</li></ul><p>の２種類に分かれます。LivePingは後者のHeartbeat Monitoring（直訳だと鼓動監視？）のシステムです。</p><p>さて、Cronってそこまで重要なものでしょうか？実は<a href="https://twitter.com/jeffiel/status/774589778255904768">、TwilioのCEOが半冗談でツィートした</a>ように、少なくともアメリカのソフトウェア業界を裏で支えてる重要な技術の一つです。しかし、どんな技術にも長所と短所があります。そしてCronも例外ではありません。利用したことのある人なら一度は考えたことがあるのではないでしょうか？</p><blockquote>もし実行時に何か問題が発生した場合はどうやってそれを認知する？</blockquote><p>Cronを筆頭に、オフラインで実行するソフトウェアは基本的に、全く音を立てずに、静かに障害を起こします。今頭に浮かぶだけでも、</p><ul><li>データベースのバックアップ失敗</li><li>外部向けのSSL/TLSの証明書の自動更新の失敗により、後日サービス全体へのアクセス障害が発生</li><li>再訓練された機械学習のモデルがデプロイされず、パーソナライズのサービスが日に日に不備を蓄積</li><li>社内やサービス間のTLS証明書の更新失敗により、サービス間の通信に障害が発生</li><li>毎月に顧客のために自動で生成されるレポートが生成されずに、クレームに繋がる</li></ul><p>以上の例以外にも他に多くの問題を経験しました。</p><p>そして、畳み掛けるかのように、時には問題が発覚するのは数カ月先ということも珍しくありません。</p><figure><img alt="this is fine meme" src="https://cdn-images-1.medium.com/max/580/1*NZaNH0SFe67HtTxKrPXkAg.png" /><figcaption>システムが燃えていても気付かない</figcaption></figure><h4>Attempts in the past</h4><p>当然問題を認知しているなら、それを解決しようとします。過去には何度か社内ツールとしてこの問題に対応してきました。そして、毎度同じように、メンテナンスの優先順位という課題にぶつかるのです。</p><p>監視システムである以上、稼働時間が短かったり、簡単に落ちていては意味がありませんが、片手間で簡単にできるものでもありません。少なくとも社内で唯一のSRE、あるいは数少ないSREの場合、障害対応以外にも対応しなければならないものや自動化させるものが他に大量にある中で、どうしても社内ツールの対応する優先順位は下がってしまうのです。</p><p>ならば社内ツールを担当するチームが存在するほどの規模の会社なら解決する問題なのか？それが面白いことに、意外とそうでもないことが多いのです。ツールのチームが担当する範囲のものは多岐に渡り、同じ社内ツールでも、エンジニアたちが直接影響されやすい、言語系フレームワークやCI/CDのような継続開発をサポートするツールに意識が行きやすく、Heartbeat Monitoringのシステムへの注意がどうしても後回しになってしまうことが多いです。</p><p>また、システムの担当や所有権も一つの問題になりえます。簡単に言えば、もし現在担当してるエンジニアが会社を去った場合、誰がシステムを引き継ぐのかという問題です。シリコンバレーは特に人材流動の激しい地域です。それによって多くの会社ではシステム構築者がその会社を去った後に、所有権が有耶無耶のシステムが数多くあり、誰も触ろうとせず、その上エンジニアの多くはドキュメンテーションを書きたがらないため、現実と認識のズレが発生し、知らない合間に会社のソフトウェアサービスが静かに危機的な状況に陥ることも珍しくありません。</p><p>そして最後に、「監視者を誰が監視する？」という問題も付いてきます。香ばしくなってきましたね？</p><p>じゃあ外部サービスを使えばいいじゃないか？と思うかもしれませんが、当然すでに試しました。最低限に必要な機能は確かに備えていますが、最低限ということは、つまり追加機能は結局自分が実装することになるので、別に大して仕事量が減ることもありませんでした。</p><h3>Problems LivePing solves (for now)</h3><p>現時点のLivePingはまず、僕個人の問題を解決するために作っています。一つは上記のような優先順位や会社を去った後の劣化の問題と、もう一つは自分が何度も何度も同じようなシステムを作る羽目になる問題です。</p><p>そして、これは問題ではないですが、僕が得意とするスケールとシステムの信頼性の一部を雇用関係になることなく、多くの人に提供できるかもしれません。</p><p>さて、ここで一旦僕個人の問題はさておき、LivePingはどのような問題が解決できるのか、少しお見せしましょう。</p><ul><li>サイレント障害の防止</li><li>Cronが仕事をしていなかった場合のためのアラート</li><li>データベースバックアップやTLS証明書の更新がちゃんと走ったかどうかのチェック</li></ul><p>他に使える定時実行の例としては、</p><ul><li>データ同期のパイプライン</li><li>データの集約やデータの廃棄</li><li>システムの脆弱性のチェック</li></ul><p>などがあります。当然、何かしら定時実行する必要なものであれば、基本的に対応できると思っていただいて大丈夫です。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gN8-wCzM-pchfA1obupCCg.png" /><figcaption>監視対象の一覧</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OcdQjQ6_1kEReVjqb02RkQ.png" /><figcaption>監視対象の状態</figcaption></figure><p>現在のLivePingのアラートはEmailとSlackのみ対応していますが、これからどんどん機能と他のアラート先を実装していくつもりです。</p><p>短期のロードマップとしては、</p><ul><li>PagerDutyのアラート</li><li>Webhookの対応</li><li>アラートを飛ばす前の猶予期間</li><li>一時的なアラートのミュート</li><li>APIアクセスとドキュメント</li><li>OAuth2による認証</li></ul><p>これ以外にもまだまだいっぱい機能を追加する予定です。</p><p>上記の機能の実装以外にもシステムの信頼性をあげるための自動化も全力で取り組んでおります。利用された際にはぜひ<a href="https://docs.google.com/forms/d/e/1FAIpQLSfV_nrNjOLxFQ3YvnJBVFtakefvEkP_ifaF-IsGQ8SgCevJYw/viewform">フィードバック</a>をいただけたら幸いです。また、希望する機能やアラート先がある場合は<a href="https://docs.google.com/forms/d/e/1FAIpQLSebbCrXlCCt_9CgwlXePzSyIjG6GftZwmhTRZHO-ZkL-J1Cqg/viewform">Feature request</a>を提出してください。各種のフォームや連絡情報は<a href="https://www.liveping.io/contact">Contact</a>ページに掲載しております。</p><p>簡単にお試しができるように、LivePingは無料で5つのPingを提供しております。有料プランもすべて14日の試用期間を設けております。詳細は<a href="https://www.liveping.io/pricing">Pricing</a>ページを参照してください。</p><h3>What’s next?</h3><p>短期的には、まず僕が過去にぶつかった多くの問題を解決するための機能を追加していく予定です。</p><p>しかし、長期的には会社やチームとともに成長できるシステムにしていきたいです。最初はもしかしたら、ただひと握りのCronを監視するために。次第にはそれぞれのチームで使い分け、アクセス制御やダッシュボードの提供。そして究極的にはサービスとともに監視を自動化していく。</p><p>Monitoring（監視）は、あくまでObservability（可観測性）の一部に過ぎません。監視の中でもサービスの死活監視と、分散されたスケジュールシステムだと対応も違ってきます。故にPrometheusにもHeartbeat Monitoringのために、Push Gatewayという副次的な機能が備えているのです。</p><p>もしPrometheusをすでに利用されているのであれば、Heartbeat MonitoringもそのままPrometheusを利用し続けることをお勧めします。しかし、もし運用してない、あるいは社内でそのようなチームを作る余裕がない場合は、ぜひLivePingを一度試してみてください！</p><p>質問、または単に話してみたいだけでも、遠慮なく連絡をください！</p><p>最後まで読んでくれてありがとうございます！</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=df5a0c9f111f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/liveping/launching-liveping-ja-df5a0c9f111f">Launching LivePing (日本語)</a> was originally published in <a href="https://medium.com/liveping">LivePing</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Launching LivePing]]></title>
            <link>https://medium.com/liveping/launching-liveping-ae480954f52f?source=rss----3141e7118d85---4</link>
            <guid isPermaLink="false">https://medium.com/p/ae480954f52f</guid>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[monitoring]]></category>
            <category><![CDATA[saas]]></category>
            <category><![CDATA[cron]]></category>
            <dc:creator><![CDATA[Darwin D Wu]]></dc:creator>
            <pubDate>Mon, 11 Nov 2019 06:54:09 GMT</pubDate>
            <atom:updated>2019-11-14T02:50:56.995Z</atom:updated>
            <content:encoded><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Cron">Cron</a>, the time-based scheduler available on any modern-day operating system which runs predefined jobs, or scripts in a consistent manner.</p><p>Cron is a simple but excellent piece of software that most software companies in the world rely on. But what happens when the job or script cron fails during execution…?</p><h3>Silence failure</h3><p>I have been working on a side project of mine and was using it for a little while. I have now made it available as a service, and it is accessible here.</p><p><a href="https://www.liveping.io/">LivePing</a></p><figure><img alt="LivePing homepage https://liveping.io" src="https://cdn-images-1.medium.com/max/1024/1*ogEFxI7YlQ4HiWsghEBKrA.png" /><figcaption>Landing page of LivePing</figcaption></figure><p>LivePing is a heartbeat monitoring tool that helps check workloads that don’t accept HTTP requests, like Cron and background workloads.</p><p>So, what’s the big deal about cron anyway? There’s a <a href="https://twitter.com/jeffiel/status/774589778255904768">tweet</a> that jokes about the importance of cron in the economy, but the impact it has is no joke. While cron is something a lot of companies rely on, there is also a problem that needs consideration when operating them.</p><blockquote>How do you know when they are not doing their job?</blockquote><p>Background workloads like cron tended to fail silently and had led to multiple issues in the past for me:</p><ul><li>Database backups were not running</li><li>External facing SSL/TLS certificates did not get updated and caused a site outage</li><li>Retrained machine learning models did not get deployed</li><li>Internal services went down silently (related to internal TLS), creating a cascading effect on other services</li><li>Monthly email reports for customers did not get generated and sent out</li></ul><p>these were merely some of the numerous examples.</p><p>Certain times, they might not even cause any side effects and only found out that the workloads have not been working for some extended amount of time.</p><figure><img alt="this is fine meme" src="https://cdn-images-1.medium.com/max/580/1*NZaNH0SFe67HtTxKrPXkAg.png" /><figcaption>Cron jobs crashing and burning</figcaption></figure><h4><strong>Attempts in the past</strong></h4><p>I’ve solved this problem a couple of times in the past as an internal tool, but it always comes back to the same maintenance priority.</p><p>Since it’s a monitoring system, it needs to have a decent amount of uptime, but guaranteeing that is typically not something you do single-handedly. At least, not if you’re the solo, or maybe one of the few members of a small SRE team when you have a thousand other things to handle and automate. Don’t mention unexpected incidents too.</p><p>Even with an internal tooling team at a larger company, that team is likely to be dealing with other projects, maybe language frameworks, CI/CD pipeline, and have other responsibilities. When trying to support more visible and direct tooling for other engineers, handling of a heartbeat monitoring system tends to get de-prioritized.</p><p>Another problem is ownership of the system. This is not a problem while you’re still with the company, but it emerges likely after you left.</p><p>Developers are not necessarily good writers, and there are always gaps between documentation and the running systems. I’m guilty of that too. So things get missed, and systems can reach critical states without being noticed after a certain amount of time.</p><p>And last but not least, you get into the “who’s going to watch the watchdog” problem. :)</p><p>So you might be thinking now, “I can see operating as an internal tool can be burdensome for people, then why don’t just use Cronitor or Dead Man’s Snitch?”</p><p>Yup, I’ve tried those, and yes, they do fulfill the bare minimum requirements I need. But they have their own set of problems, and I might touch-base on that in the future.</p><h3>Problems LivePing solves (for now)</h3><p>First and foremost, LivePing solves my problem of not needing to create another monitoring system that doesn’t age well. And the issue of doing roughly the same thing over and over again at different places. ;)</p><p>Also, maybe providing something that I’m good at, which is reliability and scalability to a broader audience.</p><p>Enough of my issues, let’s see what LivePing can do for you.</p><ul><li>Eliminating silent failures that can lead to disastrous situations</li><li>Provides alerts before problems start to snowball</li><li>Preventing the issues I’ve listed earlier like DB backups and TLS certificate updates, etc.</li></ul><p>LivePing can also help you make sure these scheduled tasks are running and working as expected:</p><ul><li>Data synchronization pipelines</li><li>Data aggregation, garbage collection</li><li>System/vulnerability scans</li></ul><figure><img alt="ping list page" src="https://cdn-images-1.medium.com/max/1024/1*gN8-wCzM-pchfA1obupCCg.png" /><figcaption>The page to see a list of Pings</figcaption></figure><figure><img alt="ping details page" src="https://cdn-images-1.medium.com/max/1024/1*OcdQjQ6_1kEReVjqb02RkQ.png" /><figcaption>Ping details page</figcaption></figure><p>While LivePing is functional at this point with Email and Slack as alerting targets, there are still a lot of lacking features and integrations.</p><p>Some of the stuff on the near term roadmap would be:</p><ul><li>PagerDuty alert integration</li><li>Custom webhooks</li><li>Grace period before alerting</li><li>Temporarily silencing alerts</li><li>API access and documentation</li><li>OAuth2 authentication</li></ul><p>and there are many more to come.</p><p>I’m working hard to improve and automate the system overall to provide a high SLA uptime and a reliable system and would appreciate your feedback using it. You can find other various forms like <a href="https://docs.google.com/forms/d/e/1FAIpQLSfV_nrNjOLxFQ3YvnJBVFtakefvEkP_ifaF-IsGQ8SgCevJYw/viewform">feedback</a> and <a href="https://docs.google.com/forms/d/e/1FAIpQLSebbCrXlCCt_9CgwlXePzSyIjG6GftZwmhTRZHO-ZkL-J1Cqg/viewform">feature request</a> on the <a href="https://www.liveping.io/contact">contact page</a>.</p><p>In effects to make it accessible, LivePing comes with 5 pings for free and doesn’t require credit card information to sign up. Any plans going forward will have a 14 day trial period. You can see the pricing details on the <a href="https://www.liveping.io/pricing">pricing page</a>.</p><h3>What’s next?</h3><p>In the short term, I’m planning to be focusing on adding features to solve problems I’ve encountered in the past, including scalability issues.</p><p>But in the long term, I want to create a system that can grow with the team’s needs. Initially, maybe just simple cron monitoring for the small number of jobs the company has. Then, moving up to dividing up jobs between teams, access controls, and dashboarding. Eventually, to a system that is easy to integrate into the automation of services.</p><p>When it comes to the observability of systems, monitoring is just a subset of it. And monitoring uptime vs. a distributed scheduling system requires a different approach. That’s why even Prometheus has a push gateway.</p><p>If you’re familiar with Prometheus, which is an excellent piece of software, by all means, go with it. If not, or you don’t have the resources to set up such a team, give LivePing a try!</p><p>If you have any questions or simply just want to chat, please reach out!</p><p>Thanks for reading! :)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ae480954f52f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/liveping/launching-liveping-ae480954f52f">Launching LivePing</a> was originally published in <a href="https://medium.com/liveping">LivePing</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>