timber 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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