Skip to content

Commit 5d6889f

Browse files
committed
Release version 29
1 parent f97d7b8 commit 5d6889f

3 files changed

Lines changed: 326 additions & 2 deletions

File tree

CHANGES.rst

Lines changed: 324 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,330 @@
11
Changelog
22
=========
33

4+
29 (2013-05-24)
5+
---------------
6+
7+
- Do not harcode path in TailManager. Closes #143. [Jose Diaz-Gonzalez]
8+
9+
- Use /etc/beaver/conf for path and provide conf.d example. Closes #149.
10+
[Jose Diaz-Gonzalez]
11+
12+
- Added mqtt as option in argparse configuration for the transport flag.
13+
[Jose Diaz-Gonzalez]
14+
15+
- Fixed broken MqttTransport naming. [Jose Diaz-Gonzalez]
16+
17+
- Refactored BeaverSubprocess to maintain the running command as an
18+
attribute. [Jose Diaz-Gonzalez]
19+
20+
- Properly parse the beaver conf.d path for new sections. Closes #144.
21+
Closes #145. Refs #107. [Jose Diaz-Gonzalez]
22+
23+
- Use a Buffered Tokenizer to read large/fast incoming log input. Refs
24+
#135. Refs #105. [Jose Diaz-Gonzalez]
25+
26+
- Close queue after worker has been stopped. Refs #135. [Jose Diaz-
27+
Gonzalez]
28+
29+
- Wrap manager.close() call in try/except to mimic the worker
30+
dispatcher. [Jose Diaz-Gonzalez]
31+
32+
- Properly parse out the port from the `ssh_tunnel` option. Closes #142.
33+
[Jose Diaz-Gonzalez]
34+
35+
- Subclass the BaseLog class in BeaverSubprocess. Refs #142. [Jose Diaz-
36+
Gonzalez]
37+
38+
- Move base_log module higher up in hierarchy. Refs #142. [Jose Diaz-
39+
Gonzalez]
40+
41+
- Disable daemonization on the windows platform. Closes #141. [Jose
42+
Diaz-Gonzalez]
43+
44+
- Move file unwatching in old-style worker out of for-loop. Refs #139.
45+
[Jose Diaz-Gonzalez]
46+
47+
Each worker has a `self._file_map` attribute which is a mapping of
48+
file ids to file data. When retrieving lines or checking on the status
49+
of the file, we use `iteritems()` which gives us a generator as
50+
opposed to a copy such as with `items()`. This generator allows us to
51+
iterate over the files without having issues where the file handle may
52+
open several times or other random Python issues.
53+
54+
Using a generator also means that the set that we are iterating over
55+
should not change mid
56+
iteration, which it does if a file is unwatched. To circumvent this,
57+
we should use a separate list to keep track of files we need to
58+
unwatch or rewatch, and do it out of band.
59+
60+
We should also take care to catch `RuntimeError` which may arise when
61+
closing the Worker out of band
62+
such as in the `cleanup` step of the worker dispatcher
63+
but nowhere else.
64+
65+
This should fix issues where logrotate suddenly causes files to
66+
disappear for a time and beaver tries to tail the file at the exact
67+
time it is being recreated.
68+
69+
- Typo in SQS docs. [Jonathan Quail]
70+
71+
- Remove ujson requirement. [Jose Diaz-Gonzalez]
72+
73+
This allows users that do not have a compiler in their deployment area
74+
to install beaver.
75+
76+
Closes #137
77+
78+
- Turn on logfile output when running in non-daemon contexts. Closes
79+
#131. [Jose Diaz-Gonzalez]
80+
81+
- Expand logging output path. Closes #133. [Jose Diaz-Gonzalez]
82+
83+
- Ensure logging to a file does not destroy regular logging. Closes
84+
#132. [Jose Diaz-Gonzalez]
85+
86+
- Properly handle unreadable files by logging a warning instead of
87+
crashing. Closes #130. [Jose Diaz-Gonzalez]
88+
89+
- Rename null_formatter to raw_formatter in BaseTransport class. [Jose
90+
Diaz-Gonzalez]
91+
92+
- Ensure that the RedisTransport calls the super invalidate method. Refs
93+
#93. [Jose Diaz-Gonzalez]
94+
95+
- Fix issue where input type was not being detected properly. [Jose
96+
Diaz-Gonzalez]
97+
98+
- Use logfile flag for sending all output to a file in daemon contexts.
99+
[Jose Diaz-Gonzalez]
100+
101+
- Expand path for pidfile creation. [Jose Diaz-Gonzalez]
102+
103+
- Properly handle redis reconnects when the datastore becomes
104+
unreacheable. Refs #93. [Jose Diaz-Gonzalez]
105+
106+
- 'type' instead of 'exchange_type' in recent pika vers. [Pravir
107+
Chandra]
108+
109+
- Adding options to make queues durable and HA. [Pravir Chandra]
110+
111+
- Respect stat_interval file configuration in stable worker. [Jose Diaz-
112+
Gonzalez]
113+
114+
- Unified configuration file using conf_d module. [Jose Diaz-Gonzalez]
115+
116+
This change adds support for a conf.d directory
117+
configured only via the `
118+
119+
confd
120+
path` flag
121+
which allows beaver to read configuration from multiple files.
122+
123+
Please note that the primary `beaver` stanza MUST be located in the
124+
file specified by the `
125+
126+
configfile` argument. Any other such `beaver` stanzas will be ignored.
127+
128+
This change also unifies the `BeaverConfig` and `FileConfig` classes,
129+
and simplifies the api for retrieving global vs file
130+
specific data.
131+
132+
Please note that this commit BREAKS custom transport classes, as the
133+
interface for creating a transport class has changed. If you are
134+
referencing a `file_config.get(field, filename)` anywhere, please omit
135+
this and refer to `beaver_config.get_field(field, filename)`.
136+
137+
Closes #107
138+
139+
- Hack to prevent stupid TypeError: 'NoneType' when running tests via
140+
setup.py. [Jose Diaz-Gonzalez]
141+
142+
- Properly handle rotated files on Darwin architectures. [Jose Diaz-
143+
Gonzalez]
144+
145+
- Log to debug instead of warning for file reloading on Darwin
146+
architectures. [Jose Diaz-Gonzalez]
147+
148+
- Speed up experimental worker. [Jose Diaz-Gonzalez]
149+
150+
Removed inline sleep call, which slowed down passes n*0.1 seconds,
151+
where n is the number of files being tailed
152+
153+
Inline methods that update data structures which should speed up
154+
larger installations
155+
156+
Make self.active() an attribute lookup instead of a method call
157+
158+
- Use latest version of message pack interface (0.3.0). Closes #128.
159+
[Jose Diaz-Gonzalez]
160+
161+
- Alternative for reading python requirements. [Justin Lambert]
162+
163+
- Fix options sent from original worker to queue. Refs #119. [Jose Diaz-
164+
Gonzalez]
165+
166+
- Allow users to ignore the results of a copytruncate from logrotate.
167+
Refs #105. [Jose Diaz-Gonzalez]
168+
169+
- Fix rpm package building. Closes #123. [Jose Diaz-Gonzalez]
170+
171+
- Added experimental tail-version of beaver. [Jose Diaz-Gonzalez]
172+
173+
- Beginning work to move from an omniscient worker to individual tail
174+
objects. [Jose Diaz-Gonzalez]
175+
176+
- Fix kwargs call. [Jose Diaz-Gonzalez]
177+
178+
- Add formatting to mqtt transport. Closes #115. [Jose Diaz-Gonzalez]
179+
180+
- Retrieve more data from callback to minimize dictionary lookups. [Jose
181+
Diaz-Gonzalez]
182+
183+
- Prefer single quotes to double quotes where possible. [Jose Diaz-
184+
Gonzalez]
185+
186+
- Ensure stat_interval and tail_lines are both integer values. [Jose
187+
Diaz-Gonzalez]
188+
189+
- Alphabetize config variables for file_config. [Jose Diaz-Gonzalez]
190+
191+
- Ensure that debug flag is a boolean. [Jose Diaz-Gonzalez]
192+
193+
- Follow logstash covention for 'format' instead of 'message_format'
194+
[Jose Diaz-Gonzalez]
195+
196+
- Use passed in 'ignore_empty' field instead of a file_config lookup in
197+
queue module. [Jose Diaz-Gonzalez]
198+
199+
- Prefer discover_interval over update_file_mapping_time. [Jose Diaz-
200+
Gonzalez]
201+
202+
- Fix TransportException import. Closes #122. [Jose Diaz-Gonzalez]
203+
204+
- Use an alternative method of reading in requirements. Refs #120. [Jose
205+
Diaz-Gonzalez]
206+
207+
- Auto-reconnect mechanism for the SSH tunnel. [Michael Franz Aigner]
208+
209+
- Fix import of REOPEN_FILES constant in dispatcher.py. [Jose Diaz-
210+
Gonzalez]
211+
212+
- Fix a PEP8 violation. [Jose Diaz-Gonzalez]
213+
214+
- Ensure all files are utf-8 encoded. [Jose Diaz-Gonzalez]
215+
216+
- Namespace transport classes in the transport module. [Jose Diaz-
217+
Gonzalez]
218+
219+
- Allow specifying debug mode via argument. [Jose Diaz-Gonzalez]
220+
221+
- Added thread-safety to datetime calls. [Jose Diaz-Gonzalez]
222+
223+
- Added support for message_format. Closes #91. [Jose Diaz-Gonzalez]
224+
225+
- Add msgpack_pure as fallback for C-Based msgpack package. [Jose Diaz-
226+
Gonzalez]
227+
228+
- Fix issues in sincedb implementation. Refs #116. [Jose Diaz-Gonzalez]
229+
230+
- Fix casting issue when checking start_position. [Jose Diaz-Gonzalez]
231+
232+
- Properly handle Queue.Full exceptions. [Jose Diaz-Gonzalez]
233+
234+
- More logging. [Jose Diaz-Gonzalez]
235+
236+
- Expand the sincedb path on configuration parse. [Jose Diaz-Gonzalez]
237+
238+
- Ignore since.db files. [Jose Diaz-Gonzalez]
239+
240+
- Simplified sincedb support to handle an edge case. Refs #116. [Jose
241+
Diaz-Gonzalez]
242+
243+
- Remove errant print. [Jose Diaz-Gonzalez]
244+
245+
- Added support for file exclusion in config stanzas. Closes #106. [Jose
246+
Diaz-Gonzalez]
247+
248+
- Added python regex exclusion support to eglob. Refs #106. [Jose Diaz-
249+
Gonzalez]
250+
251+
- PEP8. [Jose Diaz-Gonzalez]
252+
253+
- Added a tests directory with some sample tests from users. [Jose Diaz-
254+
Gonzalez]
255+
256+
- Convert the 'sincedb_write_interval' option to an integer. Refs #116.
257+
[Jose Diaz-Gonzalez]
258+
259+
- Moved logger call to a more intelligent spot. [Jose Diaz-Gonzalez]
260+
261+
- Ensure that we use the proper encoding when opening a file. Closes
262+
#104. [Jose Diaz-Gonzalez]
263+
264+
- Centralize file-reading using classmethod open() [Jose Diaz-Gonzalez]
265+
266+
- Fixed issue where tailed lines were not being properly sent to the
267+
callback. [Jose Diaz-Gonzalez]
268+
269+
- Remove unnecessary argument from Worke.__init__() [Jose Diaz-Gonzalez]
270+
271+
- Force-parse non-unicode files using unicode_dammit. [Jose Diaz-
272+
Gonzalez]
273+
274+
- Set utf-8 as default encoding on all python files. [Jose Diaz-
275+
Gonzalez]
276+
277+
- Fixed pyflakes issues. [rtoma]
278+
279+
- Syntax fix of list. [rtoma]
280+
281+
- Raise an AssertionError when run in daemon without a pid path
282+
specified. Closes #112. [Jose Diaz-Gonzalez]
283+
284+
- Add support for ignoring empty lines. [Jose Diaz-Gonzalez]
285+
286+
- Properly cast boolean values from strings. [Jose Diaz-Gonzalez]
287+
288+
- Ensure all sections have the proper values on start. [Jose Diaz-
289+
Gonzalez]
290+
291+
- Ensure internal file_config state is updated. [Jose Diaz-Gonzalez]
292+
293+
- Pass in timestamp from worker class for more accurate timestamps at
294+
the cost of speed of sending. [Jose Diaz-Gonzalez]
295+
296+
- Centralize timestamp retrieval to base transport class. [Jose Diaz-
297+
Gonzalez]
298+
299+
- Added support for gzipped files. refs #39. [Jose Diaz-Gonzalez]
300+
301+
- Added support for sqlite3-based sincedb. Refs #6 and #39. [Jose Diaz-
302+
Gonzalez]
303+
304+
- Refactored worker so as to allow further data to be added to the
305+
file_map. [Jose Diaz-Gonzalez]
306+
307+
- Refactor seek_to_end to properly support file tailing. [Jose Diaz-
308+
Gonzalez]
309+
310+
- Added support for pubsub zmq. [Jose Diaz-Gonzalez]
311+
312+
- Added support for mosquitto transport. [Jose Diaz-Gonzalez]
313+
314+
- Added support for specifying file encoding, using io.open vs os.open.
315+
[Jose Diaz-Gonzalez]
316+
317+
- Fix issue where a field may not exist in the data. [Jose Diaz-
318+
Gonzalez]
319+
320+
- Added support for rawjson format. [Jose Diaz-Gonzalez]
321+
322+
- Fixed zeromq tests. [Jose Diaz-Gonzalez]
323+
324+
- Added SQS transport. [Jonathan Quail]
325+
326+
- Fixing outdated transport docs. [Morgan Delagrange]
327+
4328
28 (2013-03-05)
5329
---------------
6330

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ From Github::
2121

2222
From PyPI::
2323

24-
pip install beaver==28
24+
pip install beaver==29
2525

2626
Usage
2727
=====

beaver/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# -*- coding: utf-8 -*-
2-
__version__ = '28'
2+
__version__ = '29'

0 commit comments

Comments
 (0)