Giter Club home page Giter Club logo

canary-checker's Introduction

Kubernetes operator for executing synthetic tests


Canary checker is a kubernetes-native platform for monitoring health across application and infrastructure using both passive and active (synthetic) mechanisms.

Features

  • Batteries Included - 35+ built-in check types
  • Kubernetes Native - Health checks (or canaries) are CRD's that reflect health via the status field, making them compatible with GitOps, Flux Health Checks, Argo, Helm, etc..
  • Secret Management - Leverage K8S secrets and configmaps for authentication and connection details
  • Prometheus - Prometheus compatible metrics are exposed at /metrics. A Grafana Dashboard is also available.
  • Dependency Free - Runs an embedded postgres instance by default, can also be configured to use an external database.
  • JUnit Export (CI/CD) - Export health check results to JUnit format for integration into CI/CD pipelines
  • JUnit Import (k6/newman/puppeter/etc) - Use any container that creates JUnit test results
  • Scriptable - Go templates, Javascript and Expr can be used to:
    • Evaluate whether a check is passing and severity to use when failing
    • Extract a user friendly error message
    • Transform and filter check responses into individual check results
  • Multi-Modal - While designed as a Kubernetes Operator, canary checker can also run as a CLI and a server without K8s

Getting Started

  1. Install canary checker:
helm repo add flanksource https://flanksource.github.io/charts
helm repo update
helm install canary-checker
  1. Create a new check:
apiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: http-check
spec:
interval: 30
http:
  - name: basic-check
    url: https://httpbin.demo.aws.flanksource.com/status/200
  - name: failing-check
    url: https://httpbin.demo.aws.flanksource.com/status/500

2a. Run the check locally (Optional)

canary-checker run canary.yaml

asciicast

kubectl apply -f canary.yaml
  1. Check the status of the health check:
kubectl get canary
NAME               INTERVAL   STATUS   LAST CHECK   UPTIME 1H        LATENCY 1H   LAST TRANSITIONED
http-check.        30         Passed   13s          18/18 (100.0%)   480ms        13s

Getting Help

If you have any questions about canary checker:

Your feedback is always welcome!

Check Types

Protocol Status Checks
HTTP(s) GA Response body, headers and duration
DNS GA Response and duration
Ping/ICMP GA Duration and packet loss
TCP GA Port is open and connectable
Data Sources
SQL (MySQL, Postgres, SQL Server) GA Ability to login, results, duration, health exposed via stored procedures
LDAP GA Ability to login, response time
ElasticSearch / Opensearch GA Ability to login, response time, size of search results
Mongo Beta Ability to login, results, duration,
Redis GA Ability to login, results, duration,
Prometheus GA Ability to login, results, duration,
Alerts Prometheus
Prometheus Alert Manager GA Pending and firing alerts
AWS Cloudwatch Alarms GA Pending and firing alarms
Dynatrace Problems Beta Problems deteced
DevOps
Git GA Query Git and Github repositories via SQL
Azure Devops
Integration Testing
JMeter Beta Runs and checks the result of a JMeter test
JUnit / BYO Beta Run a pod that saves Junit test results
File Systems / Batch
Local Disk / NFS GA Check folders for files that are: too few/many, too old/new, too small/large
S3 GA Check contents of AWS S3 Buckets
GCS GA Check contents of Google Cloud Storage Buckets
SFTP GA Check contents of folders over SFTP
SMB / CIFS GA Check contents of folders over SMB/CIFS
Config
AWS Config GA Query AWS config using SQL
AWS Config Rule GA AWS Config Rules that are firing, Custom AWS Config queries
Config DB GA Custom config queries for Mission Control Config D
Kubernetes Resources GA Kubernetes resources that are missing or are in a non-ready state
Backups
GCP Databases GA Backup freshness
Restic Beta Backup freshness and integrity
Infrastructure
EC2 GA Ability to launch new EC2 instances
Kubernetes Ingress GA Ability to schedule and then route traffic via an ingress to a pod
Docker/Containerd Deprecated Ability to push and pull containers via docker/containerd
Helm Deprecated Ability to push and pull helm charts
S3 Protocol GA Ability to read/write/list objects on an S3 compatible object store

License

Canary Checker core (the code in this repository) is licensed under Apache 2.0 and accepts contributions via GitHub pull requests after signing a CLA.

The UI (Dashboard) is free to use with canary checker under a license exception of Flanksource UI

canary-checker's People

Contributors

moshloop avatar kaitou786 avatar yashmehrotra avatar brendangalloway avatar teodor-pripoae avatar adityathebe avatar philipstaffordwood avatar ikropotov avatar paddatrapper avatar dependabot[bot] avatar ciju avatar dabasvibhor avatar rubenharutyunov avatar rouxblouw avatar vallard avatar sainivikas avatar ajatprabha avatar prashanth-nelli avatar joeshiett avatar gjagnoor avatar parth-gohil avatar step-security-bot avatar flankbot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.