Docs Ping PingArk from .NET and C#

Ping PingArk from .NET and C#

From .NET, a ping is a single HttpClient call. This fits a console app, a hosted worker, or an Azure or AWS scheduled function.

Before you start

You need a check and its ping URL. Create one in the dashboard, then copy the ping URL from the check page. New to PingArk? Start with the getting started guide.

Ping on success

Call the ping URL after your job finishes its work. A plain ping means success and re-arms the check for its next run.

using var client = new HttpClient();
await client.GetAsync("https://ping.pingark.com/ping/3f9c2a1b-7d4e-4c8a-9f1b-2e6d8a0c4b5e");
Copy

Report failures, starts and duration

Add a suffix to the ping URL to say more than a plain success. Call these the same way you called the success URL above. The ping API has the full reference.

https://ping.pingark.com/ping/3f9c2a1b-7d4e-4c8a-9f1b-2e6d8a0c4b5e        # success: the job finished, re-arms the timer
https://ping.pingark.com/ping/3f9c2a1b-7d4e-4c8a-9f1b-2e6d8a0c4b5e/start  # the run started, lets PingArk measure duration
https://ping.pingark.com/ping/3f9c2a1b-7d4e-4c8a-9f1b-2e6d8a0c4b5e/fail   # an explicit failure, alerts right away
https://ping.pingark.com/ping/3f9c2a1b-7d4e-4c8a-9f1b-2e6d8a0c4b5e/log    # a timeline note, never alerts
https://ping.pingark.com/ping/3f9c2a1b-7d4e-4c8a-9f1b-2e6d8a0c4b5e/$?     # a shell exit code: 0 is success, anything else fails
Copy

Reuse a single HttpClient for the life of the app rather than creating one per ping, and set a Timeout so a slow request cannot block.

To report a failure, call the /fail URL from your catch block. To measure duration, call /start first and the success URL when the work completes.

Troubleshooting

  • Await the call so a short lived process does not exit before the ping is sent.
  • Catch and swallow any exception from the ping so monitoring can never crash the job it watches.