|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Kubeshark||8,619||5 days ago||67||apache-2.0||Go|
|The API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters.. Think TCPDump and Wireshark re-invented for Kubernetes|
|Micrometer||3,849||258||454||13 hours ago||137||September 12, 2022||351||apache-2.0||Java|
|An application observability facade for the most popular observability tools. Think SLF4J, but for observability.|
|Myperf4j||2,792||4 days ago||8||bsd-3-clause||Java|
|High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.|
|Osm||2,562||8||13 hours ago||359||September 06, 2022||44||apache-2.0||Go|
|Open Service Mesh (OSM) is a lightweight, extensible, cloud native service mesh that allows users to uniformly manage, secure, and get out-of-the-box observability features for highly dynamic microservice environments.|
|Coroot||2,400||20 hours ago||6||apache-2.0||Go|
|A zero-instrumentation observability tool for microservice architectures.|
|API Observability. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices.|
|Easeagent||511||11 days ago||10||apache-2.0||Java|
|An agent component for the Java system|
|Easemesh||443||4 months ago||12||apache-2.0||Go|
|A service mesh implementation for connecting, control, and observe services in spring-cloud.|
|Aperture||173||14 hours ago||60||apache-2.0||Go|
|Intelligent Load Management for Cloud Native Applications|
|Network Mapper||159||3 days ago||1||apache-2.0||Go|
|Map Kubernetes in-cluster traffic and export as text, intents, or an image|
A project for learning about microservices observability.
Clone this repo and open the root folder in an IDE like Visual Studio Code.
For each microservice, rename
.env and supply the needed secrets.
TODO: Eliminate this friction.
Start all microservices in development mode.
docker-compose -f docker-compose.dev.yml \ up -d --build
In Development Mode
- You can attach a remote debugger to a running service Docker for seemless debugging like placing breakpoints and watching variables.
- Changes to source files will automatically restart the corresponding docker service.
Optionally, attach the IDE's debugger to a service as follows in Visual Studio Code: shift+cmd+D > Select a debug configuration > F5.
All vscode debug configurations are stored in .vscode/launch.json. You can modify configs as you see fit.
Visit http://localhost:16686 to view traces.
# list all running services docker-compose -f docker-compose.dev.yml ps # stop all services docker-compose -f docker-compose.dev.yml down # restart all [or specific] service docker-compose -f docker-compose.dev.yml \ up -d --no-deps --build [service-name] # tail logs from all [or specific] service docker-compose -f docker-compose.dev.yml \ logs -f [service-name] # see how an image was built docker history <image-name>
Read this article for more details.
Read this article for more details.
Name Duplication: The value of the
API_SERVER_ADDRESS variable in user-simulator/.env depends on the service name
api-server specified in docker-compose.yml. If we rename the service, we must also change the variable. Is there a way to make this DRY?
In the log-shipper container, I had to install a logz.io-specific plugin. Can't this step be eliminated since fluentd is capable of connecting to https endpoints without plugins?
Use sub-second precision for fluentd timestamps (probably best to use nanoseconds.)
env_fileattribute in docker-compose.yml.
By default each containerized process runs in an isolated network namespace. For inter-container communication, place them in the same network namespace.