about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2018-10-06 docs(README): Add notes about error reporting & minor improvementsVincent Ambo2-17/+46
2018-10-05 refactor: Replace reqwest library with ureqVincent Ambo4-965/+346
This replaces reqwest with the more simplistic ureq library for performing required HTTP requests. Reqwest comes with a lot of (tokio-based) machinery for high-performance requesting that is a bit out of scope for journaldriver's needs. This clocks in at 62 (!) fewer dependencies after the change, with equivalent functionality. Wew.
2018-09-24 docs(README): Add note about log levels / priorities / severitiesVincent Ambo1-5/+23
(kjære barn har mange navn :P) Adds a small piece of documentation about the conversion between journald priorities and Stackdriver severities to the README, as well as information about how to easily emit messages at different priorities from applications logging to journald.
2018-09-24 docs(main): Expand information on priority->severity conversionVincent Ambo1-6/+23
Adds a few additional notes about where to find more information and how to log information correctly, as was discussed on issue #11.
2018-09-24 feat(main): Pass log levels along to StackdriverThomas ten Cate2-2/+37
If a priority is present, it is passed as-is into the Stackdriver API. This allows filtering by severity in the logs UI. Conveniently, the levels are the same between journald and Stackdriver. Fixes #11.
2018-06-24 docs(README): Add section about new NixOS moduleVincent Ambo1-5/+31
2018-06-18 chore(nix): Bump version to 1.0.0Vincent Ambo1-1/+1
2018-06-18 refactor(main): Move cursor file to /var/lib/journaldriverVincent Ambo1-1/+1
This directory is the default for state directories managed by systemd, which will be the main use-case of journaldriver when running it on NixOS. Relates to nixos/nixpkgs#42134
2018-06-17 refactor(main): Split LOG_NAME & LOG_STREAM variablesVincent Ambo2-3/+5
Splitting these in two lets users better configure how the logs show up in Stackdriver Logging.
2018-06-17 chore: Bump to 1.0-rc1Vincent Ambo3-3/+3
2018-06-17 docs(README): Add non-GCP instructions to READMEVincent Ambo1-9/+33
2018-06-17 feat(main): Support manually configured resource descriptorsVincent Ambo1-31/+57
Lets users specify environment variables to configure the monitored resource descriptor. In combination with service account support this can be used to configure journaldriver on non-GCP machines. The supported environment variables are: * `GOOGLE_CLOUD_PROJECT`: Project ID of the project to which to report logs * `LOG_NAME`: Name of the Stackdriver Logging log into which to write entries
2018-06-17 feat(main): Support static service account credentialsVincent Ambo1-41/+120
Adds support for authenticating towards Google's APIs by using static service account credentials which can be retrieved from the GCP console. Users can toggle the behaviour by specifying the `GOOGLE_APPLICATION_CREDENTIALS` environment variable.
2018-06-17 chore(cargo): Add dependency on medallion JWT libraryVincent Ambo3-4/+32
2018-06-17 chore(main): Bump chunk size to 750Vincent Ambo1-1/+1
Still slightly below the Stackdriver limit. However, previous errors seem to have mostly been related to JSON payloads - which has been fixed in the previous commit.
2018-06-17 fix(main): Correct name of JSON payload fieldVincent Ambo2-5/+7
2018-06-17 refactor(main): Log error responses from StackdriverVincent Ambo1-5/+9
In some cases Stackdriver seems to return error responses for batched inserts. This change will log the error response body and status from Stackdriver for all insertion errors.
2018-06-17 feat(main): Parse timestamps out of journald entriesVincent Ambo2-9/+51
Instead of relying on Stackdriver's ingestion timestamps, parse timestamps out of journal entries and provide those to Stackdriver. If a timestamp could not be parsed out of a log entry, the ingestion time is used as the fallback.
2018-06-17 chore(cargo): Enable chrono with serde as a dependencyVincent Ambo3-1/+30
2018-06-16 chore(main): Send logs in smaller chunks of 250 entriesVincent Ambo1-1/+4
In some cases sending 1000 entries seemingly results in a vague "Bad request" error. This reduces the chunk size to something that should be more manageable.
2018-06-16 fix(main): Attempt to read with next_record before waitingVincent Ambo1-1/+13
Without this fix new records are only "pushed out" when something appends to the journal.
2018-06-16 feat(build): Add toggle for tests to Nix derivationVincent Ambo1-1/+4
2018-06-16 feat(main): Persist & load persisted cursor positionsVincent Ambo1-9/+66
Adds support for persisting the cursor position in a file (by default `/var/journaldriver/cursor.pos`, overridable via the environment variable `CURSOR_POSITION_FILE`). This lets journaldriver resume from a known journal position after service restarts. This closes #3
2018-06-16 Merge pull request #5 from aprilabank/feat/json-payloadsVincent Ambo2-3/+130
feat(main): Implement parsing of JSON payloads
2018-06-16 feat(main): Implement parsing of JSON payloadsVincent Ambo2-3/+130
Stackdriver supports structured JSON payloads in addition to simple plain-text payloads. This commit introduces a new feature in which journaldriver will attempt to parse incoming log messages into JSON vaues and forward them as structured payloads if they are JSON objects. Messages that can not be parsed into JSON objects will continue to be forwarded as plain text messages.
2018-06-15 fix(build): Update cargo dependency hash after deps changeVincent Ambo1-1/+1
2018-06-15 docs: Add contribution guidelinesVincent Ambo1-0/+114
Adds contribution guidelines. These are a slightly modified version of the guidelines I use for my personal projects.
2018-06-15 docs: Add code of conductVincent Ambo1-0/+29
2018-06-15 feat(build): Enable Nix builds in Travis.CIVincent Ambo1-0/+2
2018-06-15 chore: License under GPL 3.0Vincent Ambo3-7/+697
2018-06-15 docs(README): Add usage instructions & other information to READMEVincent Ambo1-4/+37
2018-06-15 feat(build): Add initial Nix build derivationVincent Ambo1-0/+16
2018-06-15 feat(main): Implement record conversion & flushing to APIVincent Ambo4-175/+195
This implements the "meat" of the initial version of journaldriver. Records from journald are converted into the representation required by Stackdriver and forwarded to the API. In this initial version journaldriver is only supported on instances running on GCP.
2018-06-14 feat(main): Add fetching of tokens from metadata serverVincent Ambo1-0/+39
2018-06-05 feat(main): Emit output in chunks of max. 1000 recordsVincent Ambo1-9/+15
Required by the Stackdriver API.
2018-05-28 feat(stackdriver): Add initial Stackdriver API type definitionsVincent Ambo4-1/+1138
2018-05-28 refactor(main): Simplify receiverVincent Ambo1-21/+8
Departing from the initial approach. There's no reason to multithread this for now.
2018-05-27 feat(main): Implement receiver & flushing logicVincent Ambo4-86/+329
The only thing missing for a 0.1 test run is the actual gRPC call to Stackdriver.
2018-05-27 feat(journald): Implement initial libsystemd journal callsVincent Ambo3-1/+94
2018-05-27 feat(build): Configure linking to libsystemdVincent Ambo1-0/+6
2018-05-27 chore: Add project bootstrapVincent Ambo4-0/+176
2018-05-27 chore: Initial commitVincent Ambo0-0/+0