Riemann
opentracing-javascript
Riemann | opentracing-javascript | |
---|---|---|
10 | 32 | |
4,213 | 1,090 | |
0.1% | - | |
6.2 | 1.6 | |
4 months ago | over 2 years ago | |
Clojure | TypeScript | |
Eclipse Public License 1.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Riemann
-
Is it a good idea to write logs into Kafka from Go services?
This is fine- we do something similar using riemann.
- What killed Haskell, could kill Rust, too (2020)
-
Every Simple Language Will Eventually End Up Turing Complete
"It can't go into infinite loop" is utterly irrelevant. Over last maybe 15 years I've used a bunch of apps that just used their own programming language (from simple DSL to "just write exactly how the app is supposed to handle data") and literally not a single time has that become a problem.
-
How important is Observability for SRE?
Metrics are measurements of something about your system. They are numeric values, over an interval of time, usually with associated metadata (e.g., timestamp, name). They can be raw, calculated, or aggregated over a period of time. They can come from a variety of sources like servers or APIs. Metrics are structured by default and can be stored in open source systems like Prometheus and Riemann or in off-the-shelf solutions like Amazon CloudWatch and Azure Monitor. These optimized storage systems allow you to perform queries, create alerts, and store them for long periods of time.
- A monitoring system where the agents connect to the server?
-
Is Clojure the right tool for the job?
Reason #1 - Riemann https://riemann.io/
-
Do You Know Where Lisp Is Used Nowadays?
Riemann is a tool for distributed system monitoring. It aggregates events from user servers and applications, combines them into a stream and transmits them for further processing or storage. Greater flexibility and fault-tolerance make Riemann different from other similar systems. Moreover, itβs written in Clojure almost completely. The code is available on GitHub and is distributed under Eclipse Public License 1.0.
- Riemann β A Network Monitoring System
-
Mirabelle, a stream processing tool for monitoring inspired by Riemann, release v0.1.0
I did a new release today of Mirabelle, a stream procesing tool heavily inspired by Riemann. I also spent a lot of time on the documentation website if you want to try it, and also wrote an article today about an use case.
-
I want to quit my data analyst job and learn and become a Clojure developer
Consider dabbling in a project to get your feet wet first. You have a neat problem you want solved? Give it a shot. There an interesting open source project, fork it and tinker with the code. This will be tremendously educational both vocationally and will help you get a feel for if you'd like to work in clojure all the time. There are a lot of projects, but I chose https://github.com/riemann/riemann to read and try better to understand real world clojure.
opentracing-javascript
-
Kotlin Spring WebFlux, R2DBC and Redisson microservice in k8s πβ¨π«
Spring Spring web framework Spring WebFlux Reactive REST Services Spring Data R2DBC a specification to integrate SQL databases using reactive drivers Redisson Redis Java Client Zipkin open source, end-to-end distributed tracing Spring Cloud Sleuth auto-configuration for distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus Kubernetes automating deployment, scaling, and management of containerized applications Docker and docker-compose Helm The package manager for Kubernetes Flywaydb for migrations
-
Go and ElasticSearch full-text search microservice in k8sπβ¨π«
Elasticsearch client for Go RabbitMQ Go RabbitMQ Client Library Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus Echo web framework Kibana is user interface that lets you visualize your Elasticsearch Docker and docker-compose Kubernetes K8s Helm The package manager for Kubernetes
-
Go EventSourcing and CQRS with PostgreSQL, Kafka, MongoDB and ElasticSearch πβ¨π«
PostgeSQL as event store database Kafka as messages broker gRPC Go implementation of gRPC Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MongoDB MongoDB database Elasticsearch Elasticsearch client for Go. Echo web framework Kibana Kibana is data visualization dashboard software for Elasticsearch Migrate for migrations
-
OpenTelemetry vs OpenTracing - choosing one for instrumentation
OpenTracing was an open-source project aimed at providing vendor-neutral APIs and instrumentation for distributed tracing. In distributed cloud-native applications, it is difficult for engineering teams to see how requests are performing across services. And thatβs where distributed tracing comes into the picture.
-
OpenTelemetry and Jaeger | Key concepts, features, and differences
OpenTracing is now archived, and it is suggested to migrate to OpenTelemetry.
- Microservice communication Diagram
-
Go EventSourcing and CQRS microservice using EventStoreDB πβ‘οΈπ«
In this article let's try to create closer to real world Event Sourcing CQRS microservice using: ππ¨βπ»π EventStoreDB The database built for Event Sourcing gRPC Go implementation of gRPC MongoDB Web and API based SMTP testing Elasticsearch Elasticsearch client for Go. Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus swag Swagger for Go Echo web framework Kibana Kibana is user interface that lets you visualize your Elasticsearch
-
Do Not Log
I agree; but I think it'll take years, if ever, to change this culture.
Logging is a byproduct of a past time; everything is a file, stdout is a file, lets persist that file, now we have multiple replicas, lets collect the file into a multi-terabyte searchable database.
The biggest downside: Its WILDLY expensive. Large orgs often have an entire team dedicated to maintaining logging (ELK) infrastructure. This price-tag inevitably leads to bikeshedding on backend teams about how to "reduce the amount we're logging" or "cleaning up the logs" or "structuring them to be more useful".
Outside of development, they are so rarely useful. Yet inevitably someone will say: "you're just not structuring your logs correctly." Maybe that's true; similarly, I don't find vim to be a highly productive editing experience. Maybe I just don't have the thousands of extensions it would take to make it so. Or maybe You're stuck in the past and ignoring two decades of tooling improvement. Both can be true.
I'm phrasing this as a false dichotomy, because in many teams: it is. Logging is easy; its built-in to most languages; so devs log. The information we need is in the system; its a needle in a haystack, but the needle is there. We log when a request comes in, when it hits pertinent functions, when its finished, how its finished, the manager says: "just look at the logs". Instead of "what better tooling can we make an investment in so future investigations of this nature don't take a full day."
For starters: Tracing. Tracing systems should be built-in to EVERY LANGUAGE, just like console.log. We have a standard [1] sponsored by the Linux Foundation and supported by every major trace ingestion system. This is not a problem of camps and proprietary systems; its a problem of culture. I should be able to call a nodejs stdlib function at startup, specify where I want traces to go, sampling rate, etc, and immediately get every single function call instrumented. Its literally just highly-structured-by-default logging! Dump the spans to stdout by default! Our log ingestion systems can read each line, determine if its a span, if so route to trace ingestion, otherwise route to log ingestion.
This is a critical step because it asserts that tracing is actually a very powerful tool that everyone needs to learn, like logging. Everyone knows about logging. Why? console.log. Its there, it gets used. Tracing right now is relegated to a subculture of "advanced diagnostics"; you gotta adopt a tracing provider, bring in dependencies, learn each implementation of OpenTracing, authenticate to send traces over HTTP... as a community, we should normalize just "dump traces like you dump logs, to stdout", have a formatter to make them nice to use in development, and now all that instrumentation work that any dev is capable of utilizing (just like console.log) "just works" in production.
[1] https://opentracing.io/
-
I share my authentication server.
Service mesh - ssup2ket services run on service mesh for detailed traffic control and easy monitoring. Service mesh is applied through Istio. Istio uses OpenTracing for easy request tracing between multiple services.
- logging best practices
What are some alternatives?
Zabbix - Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.
kafka-go - Kafka library in Go
Sensu
opentelemetry-specification - Specifications for OpenTelemetry
Nagios - Nagios Core
prometheus - The Prometheus monitoring system and time series database.
Flapjack - Monitoring notification routing + event processing system. For issues with the Flapjack packages, please see https://github.com/flapjack/omnibus-flapjack/
signoz - SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. π₯ π₯. π Open source Application Performance Monitoring (APM) & Observability tool
bosun - Time Series Alerting Framework
opentelemetry-js - OpenTelemetry JavaScript Client
Netdata - The open-source observability platform everyone needs
apm-agent-nodejs - Elastic APM Node.js Agent