{"id":20058810,"url":"https://github.com/ably-labs/ably.healthcheck","last_synced_at":"2026-05-10T18:09:19.692Z","repository":{"id":42004656,"uuid":"378656244","full_name":"ably-labs/Ably.Healthcheck","owner":"ably-labs","description":"Add Ably healthchecks to your .NET projects with this NuGet package.","archived":false,"fork":false,"pushed_at":"2023-09-04T23:03:48.000Z","size":98,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-10-20T02:28:09.469Z","etag":null,"topics":["ably","dotnet","health-check"],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ably-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-20T13:48:21.000Z","updated_at":"2022-02-14T14:53:56.000Z","dependencies_parsed_at":"2025-03-02T09:43:00.615Z","dependency_job_id":"b1f70df7-e65a-4b68-8d67-24240b5435b8","html_url":"https://github.com/ably-labs/Ably.Healthcheck","commit_stats":null,"previous_names":["mnie/ably.healthcheck"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ably-labs/Ably.Healthcheck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2FAbly.Healthcheck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2FAbly.Healthcheck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2FAbly.Healthcheck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2FAbly.Healthcheck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ably-labs","download_url":"https://codeload.github.com/ably-labs/Ably.Healthcheck/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ably-labs%2FAbly.Healthcheck/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-26T02:00:06.075Z","response_time":193,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ably","dotnet","health-check"],"created_at":"2024-11-13T13:04:13.697Z","updated_at":"2025-11-26T18:01:55.575Z","avatar_url":"https://github.com/ably-labs.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ably.Heathcheck\n\n* NuGet Status [![NuGet](https://buildstats.info/nuget/Ably.Healthcheck?includePreReleases=true)](https://www.nuget.org/packages/Ably.Healthcheck)\n\nLibrary with Healtchecks to check a health of [Ably](https://ably.com/) services.\nThree checks are available:\n\n- Ping check,\n- Channel check,\n- Timer check.\n\n# How to add healthchecks\n\n```fsharp\n...\nmember this.ConfigureServices(services: IServiceCollection) =\n    ...\n    let ably = new AblyRealtime (\"apiKey\")\n    ...\n    services.AddHealthChecks()\n        .AddCheck(\n            \"AblyPing\",\n            AblyPingHealthCheck(\n                ably,\n                TimeSpan.FromSeconds 1.\n            )\n        )\n        .AddCheck(\n            \"AblyChannel\",\n            AblyChannelHealthCheck(\n                ably,\n                \"ServiceName\",\n                \"ChannelName\"\n            )\n        )\n        .AddCheck(\n            \"AblyTimer\",\n            AblyTimerHealthCheck(\n                ably,\n                \"ServiceName\",\n                \"ChannelName\",\n                TimeSpan.FromSeconds1.,\n                TimeSpan.FromSeconds1.\n            )\n        )\n    |\u003e ignore\n    ...\n...\n```\n\nTo get Healthchecks UI\n\n```fsharp\nmember this.ConfigureServices(services: IServiceCollection) =\n    ...\n    services\n        .AddHealthChecksUI(fun s -\u003e\n            s\n                .SetEvaluationTimeInSeconds(60)\n                .AddHealthCheckEndpoint(\"Self\", $\"http://{Dns.GetHostName()}/health\")\n            |\u003e ignore)\n        .AddInMemoryStorage() |\u003e ignore\n    ...\n\nmember this.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) =\n    ...\n    ...\n    app.UseEndpoints(fun endpoints -\u003e\n            endpoints.MapControllers() |\u003e ignore\n            endpoints.MapHealthChecksUI(fun setup -\u003e\n                setup.UIPath \u003c- \"/ui-health\"\n                setup.ApiPath \u003c- \"/api-ui-health\"\n            ) |\u003e ignore\n            endpoints.MapHealthChecks(\n                \"/health\",\n                HealthCheckOptions(\n                    Predicate = (fun _ -\u003e true),\n                    ResponseWriter = Func\u003cHttpContext, HealthReport, Task\u003e(fun (context) (c: HealthReport) -\u003e UIResponseWriter.WriteHealthCheckUIResponse(context, c))\n                )\n            ) |\u003e ignore\n        ) |\u003e ignore\n    ...\n```\n\n## Required capabilities and restrictions\n\nWhen configuring Ably Healthcheck's we need to provide a valid `ApiKey`. Beyond of that some additional [Capabilities and Restrictions](https://ably.com/docs/core-features/authentication#capability-operations) could be required to make the `HealthCheck's` work properly.\n\n- `Channel Healthcheck`\n  - requires `Publish` Capability, restricted at most to concrete channel (part of configuration),\n    \n- `Timer Healthcheck`\n  - requires `Publish` and `Subscribe` Capabilities, restricted at most to a concrete channel (part of configuration).\n\n## Contributing\n\nDo you want to contribute to this project? Have a look at our [contributing guide](./CONTRIBUTING.md).\n\n## Issues\n\nDid you find a bug? Do you want to suggest a feature? Please file an issue [here](https://github.com/ably-labs/Ably.Healthcheck/issues/new/choose).\n\n## More info\n\n- [Join our Discord server](https://discord.gg/q89gDHZcBK)\n- [Follow us on Twitter](https://twitter.com/ablyrealtime)\n- [Use our SDKs](https://github.com/ably/)\n- [Visit our website](https://ably.com)\n\n---\n[![Ably logo](https://static.ably.dev/badge-black.svg?dotnet-healthcheck)](https://ably.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fably-labs%2Fably.healthcheck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fably-labs%2Fably.healthcheck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fably-labs%2Fably.healthcheck/lists"}