14 ms·
Show HN: Peeng – like Pingdom, but the other way around and simpler
Hey folks! Shahar and Tal from Keep (https://www.keephq.dev https://www.keephq.dev) here!
For the last few weeks we’ve been building Peeng and can now share our beta with you: https://www.peeng.sh https://www.peeng.sh. Peeng is the easiest and quickest “heartbeat” architecture we could think of. Just pick a subdomain (e.g. x.peeng.sh), configure an interval, an endpoint, and a payload, and hit that subdomain every <X (interval) seconds — If you won’t, Peeng will send an HTTP POST request to your configured endpoint.
It’s Pingdom/Cronitor/heartbeat.sh free alternative (but the other way around and A LOT simpler, with a lot more capabilities), suitable for developers, system administrators, DevOps, and individuals with complex networking situations (think “onprem” or K8s clusters with no inbound).
Instead of inbound heartbeat checks — Peeng presents outbound heartbeat checks!
Quick demo: https://youtu.be/ZX5mrnMRCwU https://youtu.be/ZX5mrnMRCwU
Why we built this:
- We needed an easy way to let Keep (https://github.com/keephq/keep https://github.com/keephq/keep) customers behind closed networks monitor their Keep instance
- We needed an easy & quick way to setup monitoring for our cronjobs
- We wanted to give people with complex networking situations (e.g. behind a firewall) an easy way to monitor their services/processes
The beta version lets you:
- Create 5 endpoints for free
- Configure the endpoint and the payload to be sent when the subdomain is not hit
- See the visits (every HTTP GET request to your subdomain) and requests (every HTTP POST sent to your configured endpoint)
- Secret header (x-peeng-secret) that confirms requests are made by you
What’s next:
- A status page that displays your subdomains and their health together with embeddable status blocks that allow you to display the status of an endpoint in your web page (you can also send query params when sending the GET requests that will be included)
- Rest API (for subdomain creation, beats retrieval, etc., imagine curl -X POST peeng.sh/subdomain -H API_KEY —json {”subdomain”: “hn”, “endpoint”: “https://..” https://xn--ivg, “payload”: {…}})
- Hierarchy-based subdomains that allow you to create a nested heartbeat solution (i.e. dynamically create a heartbeat subdomain under x.peeng.sh → y.x.peeng.sh, z.x.peeng.sh)
This is still very early, so we’d love to hear your feedback and opinions. We’re open to any feature request, so just reach out via Intercom :)
- cddotdotslash 3y agoI understand if the full app experience doesn’t work on mobile, but at least consider allowing mobile visitors to view the landing page. I’d love to check it out, but am on mobile and get a full screen “not supported” banner. Edit: or maybe redirect mobile visitors from peeng.sh to your .dev site.
- shahargl 3y agoHey! I've just removed the restriction on "/" for mobiles, can you refresh? (maybe incognito until cache is refreshed or something)
- schemescape 3y agoFYI: Menu button doesn’t work for me on iOS.
- talboren 3y agoThose are the compatibility issues we had and the reason we decided to put a mobile redirect on -- working to fix this ASAP!
- thunfisch 3y agoA service in a very similar vein is https://healthchecks.io/ https://healthchecks.io/ - which also provides a nice perspective on how low-effort the setup for a service with a substantial amount of users can be. https://news.ycombinator.com/item?id=31488910 https://news.ycombinator.com/item?id=31488910 The blog also contains a bunch of useful information and guides around the topic, including various unusual configurations (arduino/esp8266) as well as information on self-hosting.
- KerryJones 3y agoI've used healthchecks.io for years (and Laravel eco system has some heartbeat checks built into their system), I'm curious how Peeng differs?
- shahargl 3y agoPeeng (which is now gnip.io, ping in reverse) is now only for cron/onprem monitoring but eventually we want to add it a lot of other features (nested subdomains, dynamic status pages, pings (not reverse)). If you have any idea what would be make Peeng even more great it'll be cool to hear!
- deleted 3y ago[deleted]
- rozenmd 3y agoCongratulations on shipping! It's not really clear how this is different to heartbeat monitoring, is it because it uses a subdomain instead of a URL path?
- shahargl 3y agoThere are plenty of tools that does heartbeat monitoring. We focused on being - free, fast, and simplest UX possible. The next things we gonna ship are going to be different though - we are going to add status page + nested subdomains so you'll have x.y.peeng.sh so all devices that reports to x.y.peeng.sh will be aggregated to y.peeng.sh status page.
- behnamoh 3y ago[flagged]
- schemescape 3y agoI don’t currently need something like this, but I like the simplicity and it seems handy. Tech aside, I’m compelled to say that I don’t like the name. It is one letter off from a bodily function, and the pronunciation is even closer. Edit: the menu button on the landing page doesn’t work for me on iOS.
- talboren 3y agoYep, got that feedback a couple of times -- we'll do something about it, we plan on supporting more domains anyhow. Thank you for the feedback!
- abwizz 3y agoseconded; calling it "pee-ng" will limit adoption
- shahargl 3y agowe are open to suggestions
- gingerlime 3y agopiing (unless it’s taken)
- talboren 3y agomore of the same, isn’t it?
- gingerlime 3y agoyeah maybe. Slightly less like pee and more like ping? naming is hard… syng ? syn + ping
- Tossrock 3y agognip (reverse ping)
- postmortembees 3y agoNeat! I definitely read the name as "Peeing" and was confused. (Most people parse words using the first few letters and last few letters when they scan.) The blurb on the site was difficult for me to parse, mentally. It's wordy and awkward with the negative in there: > Receive an HTTP request whenever your heartbeat endpoint is not pinged for a configured interval of your choice. "Get POSTed when your endpoint stops receiving a ping." is where I got to after reading your description here, but it's sorta unclear what "your endpoint" means (it's ambiguous, is it my site's endpoint? or my "peeng endpoint"?)
- jaequery 3y agoI been looking for a reverse of pingdom and this post has caught my eye but not sure if it does what I need. I'm looking specifically for a ping/heartbeat service to observe our long-running process scripts, where I will make an HTTP request to it every x interval so I know that the background script is still alive. Does anyone know of which?
- abwizz 3y agothe name suffix suggests that it is implemented as a shell script. the homepage does not convey any information about this script or anything else like setup instructions. if i click on the github links in the top row i see a codebase that is supposedly for the server side. i would like to know more but you're not making it easy.
- talboren 3y agowe liked the .sh domain but perhaps it wasn't the best choice. signing in and creating a subdomain gives a full list of examples: https://snipboard.io/l2TU1c.jpg https://snipboard.io/l2TU1c.jpg let me know if I can help anyhow
- talboren 3y agore the GitHub repo: it's just a reference to our OSS project "Keep", not the BE of Peeng. sry for the confusion
- deleted 3y ago[deleted]
- jedberg 3y agoI'd suggest your homepage mention a few use cases (like the ones you described above). My first thought when I clicked the link was "What would I ever use this for?".
- talboren 3y agoThanks @jedberg. I’ll add a few examples to the front page.
- satvikpendem 3y agoSo you are basically making a dead man's switch, it seems [0]. However, why should I send requests to you rather than you pinging me? It saves on your server costs, sure, but it can be more of a hassle for me as the developer when I just want to know if my service is up. And definitely change your name, the first thing I though of was pee or peeing, not a good connection to have in people's minds. [0] https://en.wikipedia.org/wiki/Dead_man%27s_switch https://en.wikipedia.org/wiki/Dead_man%27s_switch
- sethhochberg 3y agoThere's a great service already existing with a riff on that name, even - https://deadmanssnitch.com/ https://deadmanssnitch.com/ DMS is useful for stuff like crons where you're trying to monitor an event that happened rather than whether a service is online. No way to ping a cronjob from the outside world, but the cron can report that it ran successfully
- unshavedyak 3y agoWouldn’t this allow for health checking services that don’t have public endpoints? My first thought was an alert to me that my home internet (or server) is down. Granted I’d probably just set up a server to do that unless this was insanely cheap.
- berkle4455 3y agobecause that’s how pingdom works, and why recreate exactly what they do? This makes it easy for internal services that maybe you don’t want to setup a publicly accessible health check ingress, would be my guess.
- lucb1e 3y agoSounds like https://deadmanssnitch.com https://deadmanssnitch.com with a bigger free plan, or is there a fundamental difference?
- shahargl 3y agoThis is the MVP which is not much different except a better UX (we hope). The next version gonna have lot of other things such as nested subdomains and status page per endpoint/subdomain.
- badcppdev 3y agoI like your product but your pricing per endpoint is not what I would choose: 10 endpoints - $1 per endpoint per month 20 endpoints - $1.5 per endpoint per month 30 endpoints - $1.33 per endpoint per month
- shahargl 3y agoNice catch, we are going to change that!
- TheIronMark 3y agoHow does Peeng differentiate between 'pings' from different services coming from the same IP? Payload? For example, if I wanted to use this for an appserver and db server and both have a NAT gw as the source, would I need to separate Peeng domains or can Peeng operate on the payload?
- talboren 3y agoYou can send query params when hitting your subdomain. We keep those query params and can then display them to differentiate between requests (coming from a NAT gw) —- does that help?
- deleted 3y ago[deleted]
- YetAnotherNick 3y agoWhy are you hacking browser scrolling on your landing page?
- talboren 3y agonot sure what do you mean, can you explain?
- YetAnotherNick 3y agoSorry my comment was for https://www.keephq.dev https://www.keephq.dev. It has subtly different scrolling that it becomes irritating to scroll.
- talboren 3y agowill check that, from mobile? thanks!
- rShergold 3y agoThis seems like a neat little service. Just a heads up. Here in the UK Peng is slang for sexually attractive.
- jw1224 3y agoWhilst it can be used that way, peng more broadly means something is generally attractive / appealing / impressive. It doesn’t necessarily have sexual connotations.
- talboren 3y agowdyt about gnip (reversed ping) as an alternative to peeng?
- vram22 3y agoThere was a site/service called gnip. https://en.m.wikipedia.org/wiki/Gnip https://en.m.wikipedia.org/wiki/Gnip
- leesalminen 3y agoMan gnip was wild. I remember getting access to the Twitter firehouse for a while through this service. We built some really useful stuff with this.
- vram22 3y agoInteresting. I gave Python training to a UK guy in the finance industry, a few years ago. He was working on a fintech side project that used gnip.
- algas 3y agoOr "Gneep" maybe
- CodeWriter23 3y agoDoes this tell me more than just cron is running on my site? Like what if my HTTP server has choked?
- shahargl 3y agoCan you elaborate? You are want it to ping your HTTP server and let you know when no response?
- koliber 3y agoIt tells you cron is running. It tells you your junior dev did not accidentally reconfigure your cron to go once a week rather than once an hour. It tells you that the program that cron starts, which performs a small suite of diagnostics on your website, is able to do them regularly. It tells you that the network at your remote office can reach the outside world.
- 8organicbits 3y agoMaybe like this, with HTTPie? http --check-status GET localhost/health && https GET example.peeng.sh The point being that your internal healthcheck endpoint isnt exposed publicly. https://httpie.io/docs/cli https://httpie.io/docs/cli
- fb03 3y ago<body> <ping> </body>
- Flemlord 3y agoI would sign up if you allowed me to ping a 2nd “check status” endpoint then send the results in the POST.
- shahargl 3y agoyou give us an URL to check, we HTTP-ping it and then send the results to another URL?
- danscan 3y ago"peeng", "pee-pee-df" what is going on on HN the past few days?
- karmakaze 3y agoWe're used routinely to calling things crap. What's wrong with a wee bit of fun?
- processunknown 3y ago[flagged]
- twelve40 3y agoI really like this idea, but. I've been thinking about this, and also the fact that Pingdom, etc. seem to consolidate. Is there really a big market for "simple monitors"? If you are small, you probably don't care much/do it yourself/don't want to pay. The moment you grow bigger, you have many more comprehensive options available to you like Sentry, Datadog, PD, etc. that offer not only uptime alerts but all kinds of other stuff for a range of budgets.
- shahargl 3y agotrue. the way we see it is that we will few use cases with very good UX, and the second thing is to build integrations to all other tools. think of status page that is integrated with all of your observability tools + you can add your own checks.
- rozenmd 3y agoI've been building OnlineOrNot (https://onlineornot.com https://onlineornot.com) for two years now - there's definitely room for more players in the market :)
- hummongous 3y agoI use a similar service (healthchecks.io) to alert me if my backup jobs haven't succeeded in the past 5 days. * rsync photos from phone to NAS (via Termux and Wireguard) * btrfs-send from desktop to NAS * restic from NAS to Backblaze The integration is simple (just a HTTP request) and it notifies me via ntfy.sh and email.
- shahargl 3y agoany feature you would want and you don't have?
- talboren 3y agowe're now available at https://www.gnip.io https://www.gnip.io (or gnip.app or gnip.dev)
- XCSme 3y agoI use https://healthchecks.io https://healthchecks.io, how is Peeng better?