All Projects → itamarst → Eliot

itamarst / Eliot

Licence: apache-2.0
Eliot: the logging system that tells you *why* it happened

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Eliot

Json Logging Python
Python logging library to emit JSON log that can be easily indexed and searchable by logging infrastructure such as ELK, EFK, AWS Cloudwatch, GCP Stackdriver
Stars: ✭ 143 (-83.64%)
Mutual labels:  elasticsearch, logging, logging-library
Tracing
Application level tracing for Rust.
Stars: ✭ 1,294 (+48.05%)
Mutual labels:  logging, tracing, logging-library
Logary
Logs and metrics are one! Professional logging, metrics and analytics for your apps.
Stars: ✭ 479 (-45.19%)
Mutual labels:  logging, tracing
Fern
Simple, efficient logging for Rust
Stars: ✭ 524 (-40.05%)
Mutual labels:  logging, logging-library
Gf
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.
Stars: ✭ 6,501 (+643.82%)
Mutual labels:  logging, tracing
Pytablewriter
pytablewriter is a Python library to write a table in various formats: CSV / Elasticsearch / HTML / JavaScript / JSON / LaTeX / LDJSON / LTSV / Markdown / MediaWiki / NumPy / Excel / Pandas / Python / reStructuredText / SQLite / TOML / TSV.
Stars: ✭ 422 (-51.72%)
Mutual labels:  elasticsearch, numpy
Izumi
Productivity-oriented collection of lightweight fancy stuff for Scala toolchain
Stars: ✭ 423 (-51.6%)
Mutual labels:  logging, logging-library
Nlog
NLog - Advanced and Structured Logging for Various .NET Platforms
Stars: ✭ 5,296 (+505.95%)
Mutual labels:  logging, logging-library
Cocoadebug
iOS Debugging Tool 🚀
Stars: ✭ 3,769 (+331.24%)
Mutual labels:  logging, logging-library
Familybucket
集合.net core、ocelot、consul、netty、rpc、eventbus、configserver、tracing、sqlsugar、vue-admin、基础管理平台等构建的微服务一条龙应用
Stars: ✭ 629 (-28.03%)
Mutual labels:  elasticsearch, tracing
Semantic logger
Semantic Logger is a feature rich logging framework, and replacement for existing Ruby & Rails loggers.
Stars: ✭ 611 (-30.09%)
Mutual labels:  elasticsearch, logging
Mex Vocabulary
MEX Vocabulary: a lightweight machine learning interchange format
Stars: ✭ 19 (-97.83%)
Mutual labels:  logging, logging-library
Quill
Asynchronous Low Latency C++ Logging Library
Stars: ✭ 422 (-51.72%)
Mutual labels:  logging, logging-library
Xcglogger
A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.
Stars: ✭ 3,710 (+324.49%)
Mutual labels:  logging, logging-library
Logstash Logger
Ruby logger that writes logstash events
Stars: ✭ 442 (-49.43%)
Mutual labels:  logging, logging-library
Requests Threads
🎭 Twisted Deferred Thread backend for Requests.
Stars: ✭ 366 (-58.12%)
Mutual labels:  asyncio, twisted
Tensor Sensor
The goal of this library is to generate more helpful exception messages for numpy/pytorch matrix algebra expressions.
Stars: ✭ 532 (-39.13%)
Mutual labels:  numpy, tracing
Yii2 Slack Log
Pretty Slack log target for Yii 2
Stars: ✭ 24 (-97.25%)
Mutual labels:  logging, logging-library
Reckless
Reckless logging. Low-latency, high-throughput, asynchronous logging library for C++.
Stars: ✭ 358 (-59.04%)
Mutual labels:  logging, logging-library
Exceptionless.net
Exceptionless clients for the .NET platform
Stars: ✭ 362 (-58.58%)
Mutual labels:  logging, logging-library

Eliot: Logging that tells you why it happened

.. image:: https://travis-ci.org/itamarst/eliot.png?branch=master :target: http://travis-ci.org/itamarst/eliot :alt: Build Status

Python's built-in logging and other similar systems output a stream of factoids: they're interesting, but you can't really tell what's going on.

  • Why is your application slow?
  • What caused this code path to be chosen?
  • Why did this error happen?

Standard logging can't answer these questions.

But with a better model you could understand what and why things happened in your application. You could pinpoint performance bottlenecks, you could understand what happened when, who called what.

That is what Eliot does. eliot is a Python logging system that outputs causal chains of actions: actions can spawn other actions, and eventually they either succeed or fail. The resulting logs tell you the story of what your software did: what happened, and what caused it.

Eliot supports a range of use cases and 3rd party libraries:

  • Logging within a single process.
  • Causal tracing across a distributed system.
  • Scientific computing, with built-in support for NumPy and Dask <https://eliot.readthedocs.io/en/stable/scientific-computing.html>_.
  • Asyncio and Trio coroutines <https://eliot.readthedocs.io/en/stable/generating/asyncio.html>_ and the Twisted networking framework <https://eliot.readthedocs.io/en/stable/generating/twisted.html>_.

Eliot is only used to generate your logs; you will might need tools like Logstash and ElasticSearch to aggregate and store logs if you are using multiple processes across multiple machines.

Eliot supports Python 3.6, 3.7, 3.8, and 3.9, as well as PyPy3. It is maintained by Itamar Turner-Trauring, and released under the Apache 2.0 License.

Python 2.7 is in legacy support mode, with the last release supported being 1.7; see here <https://eliot.readthedocs.io/en/stable/python2.html>_ for details.

  • Read the documentation <https://eliot.readthedocs.io>_.
  • Download from PyPI_ or conda-forge <https://anaconda.org/conda-forge/eliot>_.
  • Need help or have any questions? File an issue <https://github.com/itamarst/eliot/issues/new>_ on GitHub.
  • Commercial support is available from Python⇒Speed <https://pythonspeed.com/services/#eliot>_.

Testimonials

"Eliot has made tracking down causes of failure (in complex external integrations and internal uses) tremendously easier. Our errors are logged to Sentry with the Eliot task UUID. That means we can go from a Sentry notification to a high-level trace of operations—with important metadata at each operation—in a few seconds. We immediately know which user did what in which part of the system."

—Jonathan Jacobs

.. _Github: https://github.com/itamarst/eliot .. _PyPI: https://pypi.python.org/pypi/eliot

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].