timber 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08cb61746c20295dafbfcf1a098664dd9a7ac0ce
4
- data.tar.gz: f7a59dd084e99faac34169d37bc49f33a0aafba0
3
+ metadata.gz: 8e73e5010b44d99e5adfb9a250bc263acd7c0880
4
+ data.tar.gz: 6df96f28f4362e88098bc7b2db8085fbc45146ae
5
5
  SHA512:
6
- metadata.gz: 40ffc77bceab9aec868f3f0592054970bd535abcdc6fda63101859605cd68a392faf2a7f7f13970cd6091370f2b711dc2f52072cede1f2d3aee760ef76274ba6
7
- data.tar.gz: c2b7781da71ee771da0bb771295b83166f22446cf77bc27905d1a08311079b4b1a7ac3f43ca0011002148dff372f185c3180845905e8b8646960624278122759
6
+ metadata.gz: d156c42c78a02cf4f5627afb7ff70b1350e6f8abba7f984e1351f70fe7b54bdca3b421d02758575d5e5f287cd300e57c0e30c24a76d8fb70a975df71b683320c
7
+ data.tar.gz: bae815ef090ea535e10c7620d66293abb8c82ef9b134bfea3797fdfa3e66f590c5d991cbd817837deb767c6cd46a21fb90a0e3823ea7da0039c108af37e18150
data/README.md CHANGED
@@ -12,49 +12,18 @@
12
12
 
13
13
  1. [What is timber?](#what-is-timber)
14
14
  2. [Why timber?](#why-timber)
15
- 3. [How does it work?](#how-does-it-work)
16
15
  4. [Logging Custom Events](#logging-custom-events)
17
- 5. [The Timber Console / Pricing](#the-timber-console-pricing)
16
+ 5. [The Timber Console / Pricing](#the-timber-console--pricing)
18
17
  6. [Install](#install)
19
18
 
20
19
 
21
20
  ## What is Timber?
22
21
 
23
- Glad you asked! :) Timber takes a different approach to logging, in that it automatically
24
- enriches and structures your logs without altering the essence of your original log messages.
25
- Giving you the best of both worlds: human readable logs *and* rich structured data.
22
+ [Timber](http://timber.io) is a different kind of logging platform; it goes beyond traditional
23
+ logging by automatically enriching your logs with application level metadata, turning them
24
+ into rich, structured events without altering the essence of logging.
26
25
 
27
- And it does so with absolutely no lock-in or risk of code debt. It's just good ol' loggin'™!
28
- For example:
29
-
30
- 1. The resulting log format, by deafult, is a simple, non-proprietary, JSON structure.
31
- 2. The [`Timber::Logger`](lib/timber/events) class extends `Logger`, and will never change or
32
- extend the public API.
33
- 3. Where you send your logs is entirely up to you, but we hope you'll check out
34
- [timber.io](https://timber.io). We've built a beautiful, modern, and *fast* console specifically
35
- for the strutured data captured here.
36
-
37
-
38
- ## Why Timber?
39
-
40
- Timber’s philosophy is that application insight should be open and owned by you. It should not
41
- require a myriad of services to accomplish. And there is no better vehicle than logging:
42
-
43
- 1. The log is immutable and complete. [It is the truth](http://files.timber.io/images/log-is-the-truth.png) :)
44
- 2. It’s a shared practice that has been around since the dawn of computers.
45
- 3. It’s baked into every language, library, and framework. Even your own apps!
46
- 4. The data is open, accessible, and entirely owned by you. Yay!
47
-
48
- The problem is that logs are unstructured, noisy, and hard to use. `grep` can only take you so
49
- far! Timber solves this by properly structuring your logs, making them easy to search and
50
- visualize -- enabling you to sanely realize the power of your logs.
51
-
52
-
53
- ## How does it work?
54
-
55
- Timber automatically structures your logs by taking advantage of public APIs.
56
-
57
- For example, by subscribing to `ActiveSupport::Notifications`, Timber can automatically turn this:
26
+ For example, it turns this:
58
27
 
59
28
  ```
60
29
  Completed 200 OK in 117ms (Views: 85.2ms | ActiveRecord: 25.3ms)
@@ -62,7 +31,7 @@ Completed 200 OK in 117ms (Views: 85.2ms | ActiveRecord: 25.3ms)
62
31
 
63
32
  Into this:
64
33
 
65
- ```json
34
+ ```javascript
66
35
  {
67
36
  "dt": "2016-12-01T02:23:12.236543Z",
68
37
  "level": "info",
@@ -74,7 +43,7 @@ Into this:
74
43
  "remote_addr": "123.456.789.10",
75
44
  "request_id": "abcd1234"
76
45
  },
77
- "user": {
46
+ "user": { // <---- http://i.giphy.com/EldfH1VJdbrwY.gif
78
47
  "id": 2,
79
48
  "name": "Ben Johnson",
80
49
  "email": "ben@johnson.com"
@@ -89,8 +58,30 @@ Into this:
89
58
  }
90
59
  ```
91
60
 
92
- It does the same for `http requests`, `sql queries`, `exceptions`, `template renderings`,
93
- and any other event your framework logs. (for a full list see [`Timber::Events`](lib/timber/events))
61
+ Notice we include data that isn't in the log message directly. It does the same for
62
+ `http requests`, `sql queries`, `exceptions`, `template renderings`, and any other event
63
+ your framework logs.
64
+
65
+ (for a full list see [`Timber::Events`](lib/timber/events))
66
+
67
+
68
+ ## Why Timber?
69
+
70
+ Glad you asked! :)
71
+
72
+ 1. It's application aware and enriches your logs with data you can't get otherwise. This
73
+ entire process is fully managed for you.
74
+ 2. It defines a shared schema across all of our libraries. Meaning your log data, across all
75
+ applications, will be normalized.
76
+ 3. It does not alter the original log message, giving you the best of both worlds: human
77
+ readable logs *and* rich structured events.
78
+ 4. It's completely transparent with absolutely no vendor lock-in or risk of code debt. Timber
79
+ adheres exactly to the `Logger` API. Meaning Timber can be installed and removed without
80
+ any reprocusion.
81
+
82
+ What really makes Timber unique is that at the end of the day it's just good ol' loggin'.
83
+ No special API, no proprietary data format, the data is accessible and owned by you.
84
+ [Woo!](http://i.giphy.com/7JYWGKgwxga5i.gif)
94
85
 
95
86
 
96
87
  ## Logging Custom Events
@@ -122,6 +113,20 @@ No mention of Timber anywhere!
122
113
 
123
114
  ## The Timber Console / Pricing
124
115
 
116
+ Like my mother always said:
117
+
118
+ > What good is structured log data if you can't search and visualize it?
119
+
120
+ Enter [the Timber Console](https://timber.io). It's a modern, fast, and beautiful console for
121
+ searching and visualizing your logs.
122
+
123
+ A few example queries:
124
+
125
+ 1. `context.user.email:ben@johnson.com` - Tail a specific user!
126
+ 2. `context.http.request_id:1234` - View *all* logs for a given HTTP request!
127
+ 3. `event.http_reponse.time_ms>3000` - Easily find outliers and have the proper context to resolve them!
128
+ 4. `level:warn` - Log levels in your logs. Imagine that!
129
+
125
130
  > This is all gravy, but wouldn't the extra data get expensive?
126
131
 
127
132
  If you opt use the [Timber Console](https://timber.io), we only charge for
@@ -8,7 +8,7 @@ module Timber
8
8
  #
9
9
  # See {#initialize} for options and more details.
10
10
  class HTTP
11
- API_URI = URI.parse("https://api.timber.io/http_frames")
11
+ API_URI = URI.parse("https://logs.timber.io/frames")
12
12
  CONTENT_TYPE = "application/x-timber-msgpack-frame-1".freeze
13
13
  CONNECTION_HEADER = "keep-alive".freeze
14
14
  USER_AGENT = "Timber Ruby Gem/#{Timber::VERSION}".freeze
@@ -1,3 +1,3 @@
1
1
  module Timber
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timber Technologies, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-15 00:00:00.000000000 Z
11
+ date: 2016-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack