NewTimber for Kubernetes

    May 30th, 2018

    With the recent release of v0.8.1 of our Timber Agent, we wanted to highlight its new features:

    Kubernetes Support

    Kubernetes support has been added to the Timber Agent as of v0.8.0 under the capture-kube subcommand. Inline with all other Timber offerings, the Kubernetes integration ships logs augmented with contextual information specific to Kubernetes. This information helps identify the log source and includes Pod Name, Container Name, and Deployment Name to list a few. Additional configuration options such as filtering have been added to support a wide range of workflows. More information can be found here and here.

    Global State File

    In our v0.7.0 release, state moved from being stored in a file per tailed file to a single global file. This change mirrors how other logging agents behave and makes the agent easier to manage in both containerized and virtual machine based environments. By default, the path of the global state file is /var/lib/timber-agent/statefile.json on Linux and /var/db/timber-agent/statefile.json on BSD based systems. The location of this file can be configured via the --statefile cli flag.

    Docker Containers

    Docker is supported and fully functional following our v0.6.2 release. All versions of the Timber Agent Docker container can be found here with the rest of our Docker containers at hub.docker.com/u/timber.io.

    ImprovementTimber for Ruby v2.1.0.rc1

    Jun 2nd, 2017

    This update introduces a lot of great new configuration options and performance improvements:

    Configuration options

    The README has been updated to include a configuration section. This demonstrates common configuration setups. You can also view the Timber::Config class for a full list of options. Here's the high level overview:

    All Timber::Integrations::* classes received a enabled= and a silenced= class methods. The former disables the integration entirely, the latter keeps the integration enabled but silences the logs. Timber::Integrations::Rack::HTTPEvents now has a .collapse_into_single_event= method that will only log the response log instead of both the request and response.

    A convenience Timber::Config.instance.logrageify! method was added that automatically silences the appropriate logs to behave similarly to lograge. It uses the above settings to do so. Timber::Integrations::Rack::HTTPEvents.silence_request= was added to provide the ability to silence noisy requests (load balancer checks).

    General improvements

    The Timber::Contexts::Release context was added and it will automatically set itself if the proper environment variables are set. You can see an example in the configuration section of the README. The installer was completely reworked and received a number of great improvements, notably the support for multiple environments, avoiding the need to run the installer multiple times.

    A lot of great doc updates. The readme has been updated as well as the library docs.

    ImprovementSearch Syntax Improvements

    May 23rd, 2017

    We're always looking for ways to make our search feel effortless. Today we released a few welcome changes to our search syntax:

    1. hello world - Now defaults to a phrase match, where the phrase hello world must appear within the log line (case insensitive). Previously, this would perform an intersection of hello and world, and acheiving a phrase match required quotes. After collecting feedback for a few months this continually came up. We hope this makes searching a little more effortless.
    2. MyModule::MySubModule - Is now treated as a literal text search. Searching for ruby module names is a very common task. Previously, because : is a special character for attribute search, this would throw an error saying the MyModule: attribute does not exist.
    3. debug, info, warn, error, and fatal - Now search the repsecitve log level as well as the log line message. Previously, this required an attribute search like level:warn. Because level is displayed on the screen, we've seen a lot of users type levels expecting it to work. Now it does!