Coroot is a monitoring and troubleshooting tool for microservice architectures.
eBPF-based service mapping
Thanks to eBPF, Coroot shows you a comprehensive map of your services without any code changes.
Log analysis without storage costs
Node-agent turns terabytes of logs into just a few dozen metrics by extracting repeated patterns right on the node. Using these metrics allows you to quickly and cost-effectively find the errors relevant to a particular outage.
Cloud topology awareness
Coroot uses cloud metadata to show which regions and availability zones each application runs in. This is very important to known, because:
- Network latency between availability zones within the same region can be higher than within one particular zone.
- Data transfer between availability zones in the same region is paid, while data transfer within a zone is free.
Advanced Postgres observability
Coroot makes troubleshooting Postgres-related issues easier not only for experienced DBAs but also for engineers not specialized in databases.
Integration into your existing monitoring stack
Coroot uses Prometheus as a Time-Series Database (TSDB):
- The agents are Prometheus-compatible exporters
- Coroot itself is a Prometheus client (like Grafana)
Built-in Prometheus cache
The built-in Prometheus cache allows Coroot to provide you with a blazing fast UI without overloading your Prometheus.
You can run Coroot as a Docker container or deploy it into any Kubernetes cluster. Check out the Installation guide.
The Coroot documentation is available at coroot.com/docs/coroot-community-edition.
Coroot is licensed under the Apache License, Version 2.0.
Coroot UI doesn't see pg-agent metrics
Hello, Thank you for this wonderful and convinient instrument! Unfotunately, I met some troubles with pg-agent.
After installation I've seen the relevant metrics in Prometheus, but my Coroot UI doesn't see them (though it registered the instance of pg-agent)
I started pg-agent with
docker run -d --name coroot-pg-agent -p <port>:80 --env DSN="postgresql://<user>:<password>@<ip>:5432/postgres?connect_timeout=1&statement_timeout=30000" ghcr.io/coroot/coroot-pg-agent
But got in logs of Coroot UI container:
couldn't find actual instance for "postgres", initial instance is "[email protected]" (map)(yes, I have the role of postgres_exporter in PostgreSQL, but use another role for Coroot pg-agent). What have I done wrong?
Also, I've got none of those metrics: pg_lock_awaiting_queries, pg_wal_receiver_status, pg_wal_replay_paused, pg_wal_receive_lsn, pg_wal_reply_lsn. May be, it was happened because of using PostgreSQL 11 version?
Not getting service maps
Coroot 0.2.2 Coroot-node-agent 1.0.19 k3s v1.24.4+k3s1
Status reports everything is ok:
As an example, i took loki in distributed setup.
In app search, i can see them:
But if i open app details, i can't see inter-communication between components:
Wondering if i'm missing something? Maybe specific labels?
Node Agent is configured but the coroot is not identifying
I have a problem, even configuring node-agent the coroot is not working and collecting node metrics. Below is the YAML files. Basically I implemented it in the default, I'm also using kube-prometheus-stack but I don't use the podSelector configuration
As pictured above, the configuration with promtheus is OK.
The agent node daemon sets are apparently healthy too but looking into coroot web UI always show
coroot-node-agent : no agent installed
I've followed the document below to install node-agent
microk8s failed to inspect container
I'm having trouble getting service maps working. I installed coroot into a single node microk8s cluster, all applications show external endpoints, and no CPU/Memory data is picked up.
helmwhich installed the following coroot versions:
node agent logs are showing "failed to inspect container" errors
cpu throttling calculation
I see in your documentation you counting throttling. I see coroot just has metric container_resources_cpu_throttled_seconds_total. Without period
Coroot uses the [container_resources_cpu_throttled_seconds_total](https://coroot.com/docs/metric-exporters/node-agent/metrics#container_resources_cpu_throttled_seconds_total) metric to find out how long each container has been throttled for. If this metric of related containers is correlating with the application SLIs (Service Level Indicators), that means the lack of CPU time is caused by throttling.
i search in your open code but did't find what kind of formula are you use for calculation percent of throttling in container?
[feature request] allow customization of monitoring-related namespaces
Hello, it seems that namespaces related to monitoring are hardcoded: https://github.com/coroot/coroot/blob/5e461f4dafe3935e9d610825282f1bed227c55f5/model/application.go#L119 It will be nice if they can be customized, for example i have parca in ns parca which is also related to monitoring, and i bet other people have different software in different namespaces too.
[feature request] allow blacklisting of certain services
Hello! I'm not sure if this should be part of node-agent or UI, so putting it here.
I want to be able to blacklist certain services from UI. As an example, i have iscsid running on host nodes for longhorn (also used by openebs jiva, maybe something else too). It creates useless links on map (will be running on every node, connected to all instance managers with local replica, so there will be tons of them). Hardcoding them all to coroot code seems pointless, so maybe just add setting to hide those nodes from UI?
On the other side, blacklisting them in agent (maybe with argument, like "--ignore-services=iscsid,haproxy"?) might reduce cardinality in prometheus, assuming those services will be dropped at probe time.
Support for ARM64 architectures
I am trying coroot for an in-house kubernetes clusters deployed on Raspberry Pi 4 machines. I followed the installation guide but I am getting
exec /opt/coroot/coroot: exec format error. This tells me that the arm64 arch is not supported. Considering all cloud providers like AWS, GCP, Oracle and now Azure have arm64 support, it would be great if we can get arm64 bit support.
Hello! Got this error, appears randomly. Does not crash pod with coroot, but stops responding in UI
Bump vuetify from 2.6.9 to 2.6.10 in /front
Bumps vuetify from 2.6.9 to 2.6.10.
Sourced from vuetify's releases.
fdfb6fcchore(release): publish v2.6.10
cd193e4fix(VSelectList): correct mask class
89e3850fix(VDialog): don't try to focus tabindex="-1" or hidden inputs
4468e3crefactor(VSelect): render highlight with vnodes instead of innerHTML
ade1434fix(VCalendar): prevent XSS from eventName function
464529afix(VMenu): disabled activatorFixed when attach is enabled (#15709)
7a51ad0fix(VTextField): only show clear icon on hover or when focused
f8ee680fix(VTextField): prevent tabbing to clear button
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR
@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it
@dependabot mergewill merge this PR after your CI passes on it
@dependabot squash and mergewill squash and merge this PR after your CI passes on it
@dependabot cancel mergewill cancel a previously requested merge and block automerging
@dependabot reopenwill reopen this PR if it is closed
@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
@dependabot use these labelswill set the current labels as the default for future PRs for this repo and language
@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language
@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language
@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the Security Alerts page.
Node agent is crashing with `netlink receive: no such file or directory`
I was trying out coroot on local minikube setup and I see that node agent is going into
crashloopbackoffwith this error
kube-state-metrics not showing in project configuration
I've configured coroot in a kubernetes cluster, but kube-state-metrics even if deployed is not showing in project configuration page
prometheus: ok coroot-node-agent: 5 nodes found
I just followed this installation instructions: https://coroot.com/docs/metric-exporters/kube-state-metrics/installation Am I missing something?