Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #1495

Eliot 0.6: Logging for Complex & Distributed Systems

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed1a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <itamar@clusterhq.com>
X-Original-To python-announce-list@python.org
Delivered-To python-announce-list@mail.python.org
X-Spam-Status OK 0.001
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'received:209.85.223': 0.03; 'irc': 0.05; 'output': 0.05; '<>,': 0.07; 'debugging': 0.07; 'error:': 0.07; 'incompatible': 0.07; 'pypi': 0.07; 'modulo': 0.09; 'span': 0.09; "system's": 0.09; 'url:github': 0.09; 'python': 0.11; 'bug': 0.12; 'systems.': 0.12; '<>.': 0.14; '0.6.0': 0.16; 'client:': 0.16; 'deduced': 0.16; 'docs.': 0.16; 'operation.': 0.16; 'pypi.': 0.16; 'sorting': 0.16; 'subject:Logging': 0.16; 'threads,': 0.16; 'to:addr:python- announce-list': 0.16; 'tracing': 0.16; 'uniquely': 0.16; 'url:output': 0.16; 'fix': 0.17; 'logical': 0.24; 'unicode': 0.24; 'server.': 0.24; 'versions': 0.24; 'logging': 0.26; 'task': 0.26; 'values': 0.27; 'record': 0.27; 'to:2**1': 0.27; 'feature': 0.29; 'to:no real name:2**1': 0.29; 'message-id:@mail.gmail.com': 0.30; 'work.': 0.31; 'page.': 0.31; 'requests': 0.31; 'division': 0.31; 'filed': 0.31; 'trace': 0.31; 'allows': 0.31; 'figure': 0.32; 'url:python': 0.33; '(e.g.': 0.33; 'bugs': 0.33; 'could': 0.34; 'received:209.85': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'located': 0.36; 'possible': 0.36; 'url:org': 0.36; 'should': 0.36; 'example,': 0.37; 'project': 0.37; 'received:209': 0.37; 'being': 0.38; 'server': 0.38; 'actions': 0.38; 'e.g.': 0.38; 'tasks': 0.38; 'files': 0.38; 'previous': 0.38; 'channel': 0.39; 'to:addr:python.org': 0.39; 'how': 0.40; 'even': 0.60; 'read': 0.60; 'easy': 0.60; 'chain': 0.60; 'improved': 0.60; 'logged': 0.60; 'logs': 0.60; 'problems.': 0.60; 'field.': 0.61; 'skip:a 30': 0.61; 'new': 0.61; 'simple': 0.61; 'field': 0.63; 'different': 0.65; 'great': 0.65; 'within': 0.65; 'here': 0.66; 'url:0': 0.67; 'between': 0.67; 'subject: & ': 0.68; 'ambiguous': 0.84; 'distinguish': 0.84; 'features:': 0.84; 'subject:Systems': 0.91
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=ZsaaXoRGYBCLR4xXsJmUcbuYaU70x0+dRSo3cQGy86Q=; b=LfbSiTfZR44eB3MTmBS/wTfrstIYD0hC0loX04iCeSEJzWeAWiapFFsGytHNo/TFO8 z/Ex4zWxLhGM2zPRtfIdrStzvZenI+3AqJBg9+KJ4qix0gqax4dQEOuU7K0p7pxmpooK jdyE2K9HJdhvledMqE9WKbYdPRCCSjeL9OnQpbEEE0ReHJ0V9gDNrrws+c9sfZD3XntT 373if/SE6cEfkxdMJzxK+kzSi7bqNz8AOznAWHZJTwSf4sAPEz1O252tpVRKuNAHm8a1 Oh1vUgasK3/99ZoIlFxQMmFw93Kqai2VwYLxJkVtjHHiwzhgsOZ0a5TD2fvI+AzpLj7A yvgg==
X-Gm-Message-State ALoCoQm7FGRlZOjL6IvcAl9wiVaDC6F11fvvxm31GAjPgAQu42Nke+fLol6kUKba/zbhNJkmfm74
MIME-Version 1.0
X-Received by 10.50.225.1 with SMTP id rg1mr6404494igc.39.1418235314445; Wed, 10 Dec 2014 10:15:14 -0800 (PST)
Date Wed, 10 Dec 2014 13:15:14 -0500
Subject Eliot 0.6: Logging for Complex & Distributed Systems
From Itamar Turner-Trauring <itamar@clusterhq.com>
To python-announce-list@python.org, twisted-python@twistedmatrix.com
X-Mailman-Approved-At Wed, 10 Dec 2014 21:34:28 +0100
Content-Type text/plain; charset=UTF-8
X-Content-Filtered-By Mailman/MimeDel 2.1.15
X-BeenThere python-announce-list@python.org
X-Mailman-Version 2.1.15
Precedence list
Reply-To python-list@python.org
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-announce-list/>
List-Post <mailto:python-announce-list@python.org>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=subscribe>
Approved python-announce-list@python.org
Newsgroups comp.lang.python.announce
Message-ID <mailman.16826.1418243669.18130.python-announce-list@python.org> (permalink)
Lines 82
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1418243669 news.xs4all.nl 2873 [2001:888:2000:d::a6]:50446
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python.announce:1495

Show key headers only | View raw


Eliot is a logging system designed not only for simple applications but for
complex applications as well, including distributed systems. Eliot supports
simple structured messages but can also record a causal chain of actions
happening within and across process boundaries: a logical trace of the
system's operation.

Structured, action-oriented logging is a great help when debugging
problems. For example, here are the combined logs of a request originating
from a client process being sent to a server. Notice how easy it is to
figure out the cause of the problem, even though it's opaque to the client:

process='client' task_uuid='40be6df2' task_level=[1] action_type='main'
    action_status='started'

process='client' task_uuid='40be6df2' task_level=[2, 1]
action_type='http_request'
    action_status='started' x=5 y=0

process='server' task_uuid='40be6df2' task_level=[2, 2, 1]
action_type='eliot:remote_task'
    action_status='started'

process='server' task_uuid='40be6df2' task_level=[2, 2, 2, 1]
action_type='divide'
    action_status='started' x=5 y=0

process='server' task_uuid='40be6df2' task_level=[2, 2, 2, 2]
action_type='divide'
    action_status='failed' exception='exceptions.ZeroDivisionError'
reason='integer division or modulo by zero'

process='server' task_uuid='40be6df2' task_level=[2, 2, 3]
action_type='eliot:remote_task'
    action_status='failed' exception='exceptions.ZeroDivisionError'
reason='integer division or modulo by zero'

process='client' task_uuid='40be6df2' task_level=[2, 3]
action_type='http_request'
   action_status='failed' exception='requests.exception.HTTPError'
reason='500 Server Error: INTERNAL SERVER ERROR'

process='client' task_uuid='40be6df2' task_level=[3] action_type='main'
   action_status='failed' exception='requests.exception.HTTPError'
reason='500 Server Error: INTERNAL SERVER ERROR'

What's New in 0.6.0

Incompatible output format change! In previous versions the ordering of
messages and actions was ambiguous and could not be deduced from
out-of-order logs, and even where it was possible sorting correctly was
difficult. To fix this the action_counter field was removed and now all
messages can be uniquely located within a specific task by the values
in an *improved
task_level field*
<http://eliot.readthedocs.org/en/0.6.0/fields.html#task-fields>.

Features:

   - Eliot tasks can now *span multiple processes and threads*
   <http://eliot.readthedocs.org/en/0.6.0/threads.html#cross-process-tasks>,
   allowing for easy tracing of actions in distributed applications.
   - *eliot.add_global_fields*
   <http://eliot.readthedocs.org/en/0.6.0/output.html#add-global-fields>
   allows adding fields with specific values to all Eliot messages logged by
   your program. This can be used to e.g. distinguish between log messages
   from different processes by including relevant identifying information.

Bug fixes:

   - On Python 3 files that accept unicode (e.g. sys.stdout) should now
   work.


Downloads are available on PyPI <https://pypi.python.org/pypi/eliot>.

Documentation can be found on Read The Docs <https://eliot.readthedocs.org/>
.

Bugs and feature requests should be filed at the project Github page
<https://github.com/ClusterHQ/eliot>.

You can ask for help on IRC at the #eliot channel on irc.freenode.net.

Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread


Thread

Eliot 0.6: Logging for Complex & Distributed Systems Itamar Turner-Trauring <itamar@clusterhq.com> - 2014-12-10 13:15 -0500

csiph-web