Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ovh/ldp-tail
OVH Logs Data Platform - Tail CLI tooling
https://github.com/ovh/ldp-tail
cli ldp logging ovh tail
Last synced: 3 months ago
JSON representation
OVH Logs Data Platform - Tail CLI tooling
- Host: GitHub
- URL: https://github.com/ovh/ldp-tail
- Owner: ovh
- License: other
- Created: 2017-06-22T13:44:59.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-06-07T09:38:26.000Z (over 1 year ago)
- Last Synced: 2024-06-19T00:36:00.107Z (7 months ago)
- Topics: cli, ldp, logging, ovh, tail
- Language: Go
- Homepage:
- Size: 44.9 KB
- Stars: 24
- Watchers: 11
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/ovh/ldp-tail.svg?branch=master)](https://travis-ci.org/ovh/ldp-tail)
[![Go Report Card](https://goreportcard.com/badge/github.com/ovh/ldp-tail)](https://goreportcard.com/report/github.com/ovh/ldp-tail)Logs Data Platform - Tail
=========================This tool allows you to display the logs pushed in Logs Data Platform in real time.
More infos on Logs Data Platform and how to obtain the stream uri: https://docs.ovh.com/gb/en/logs-data-platform/ldp-tail/Installation
------------
To install cli, simply run:
```
$ go install github.com/ovh/ldp-tail@latest
```Usage
-----
```sh
ldp-tail --address
```Demo
----
```sh
ldp-tail --address wss://gra1.logs.ovh.com/tail/?tk=demo --pattern "{{ .short_message }}"
```Parameters
----------
* Server
* `address` URI of the websocket
* Filtering
* `match` Display only messages matching the condition. Example: `_method=verifyPassword`. You may specify an operator like: `_method.begin=verify` or negate its meaning like: `_method.not.begin=verify`. Available operators are:
* `present` The field is present
* `begin` The field begins with the value
* `contain` The field contains the value
* `lt` The field is less than the value
* `le` The field is less than or equal to the value
* `eq` The field is equal to the value
* `ge` The field is greater than or equal to the value
* `gt` The field is greater than the value
* `regex` The field match the regular expression
* Formatting
* `raw` Display raw JSON message instead of parsing it
* `format` Display messages using a pre-defined format. Valid values:
* `logrus` Display messages like [Logrus](https://github.com/sirupsen/logrus) for messages sent with [Graylog Hook for Logrus](https://github.com/gemnasium/logrus-graylog-hook/)
* `logrus-color` Display colored messages like [Logrus](https://github.com/sirupsen/logrus) for messages sent with [Graylog Hook for Logrus](https://github.com/gemnasium/logrus-graylog-hook/)
* `pattern` Template to apply on each message to display it. Default: `{{._appID}}> {{.short_message}}`. Custom available functions are:
* `color` Set text color. Available colors are: `green` `white` `yellow` `red` `blue` `magenta` `cyan`
* `bColor` Set background color. Available colors are: `green` `white` `yellow` `red` `blue` `magenta` `cyan`
* `noColor` Disable text and background color
* `date` Transform a timestamp in a human readable date. Default format is `2006-01-02 15:04:05` but can be customized with the second optional argument
* `join` Concatenates strings passed in argument with the first argument used as separator
* `concat` Concatenates strings passed in argument
* `duration` Transform a value in a human readable duration. First argument must be a parsable number. The second argument is the multiplier coefficient to be applied based on nanoseconds. Ex: 1000000 if the value is in milliseconds.
* `int` Converts a string or a number to an int64
* `float` Converts a string to float64
* `string` Converts a value to a string
* `get` Return the value under the key passed in the second argument of the map passed first argument. Useful for accessing keys containing a period. Ex: `{{ get . "foo.bar" }}`
* `column` Formats input into multiple columns. Columns are delimited with the characters supplied in the first argument. Ex: `"{{ column " | " (date .timestamp) (concat ._method " " ._path ) ._httpStatus_int }}`
* `begin` Return true if the first argument begins with the second
* `contain` Return true if the second argument is within the first
* `level` Transform a Gelf/Syslog level value (0-7) to a syslog severity keyword
* Config
* `config` Config file loaded before parsing parameters, so parameters will override the values in the config file (except for `match` where parameters will add more criteria instead of replacing them). The config file use the [TOML](https://github.com/toml-lang/toml) file format. The structure of the configuration file is:
```
Address string
Match []{
Key string
Operator string
Value interface{}
Not bool
}
Pattern string
Raw bool
```
Exemple:
```
Address = "wss://gra1.logs.ovh.com/tail/?tk=demo"
Pattern = "{{date .timestamp}}: {{if ne ._title \"\"}}[ {{._title}} ] {{end}}{{ .short_message }}"
```# Contributing
You've developed a new cool feature? Fixed an annoying bug? We'd be happy
to hear from you! Make sure to read [CONTRIBUTING.md](./CONTRIBUTING.md) before.# License
This work is under the BSD license, see the [LICENSE](LICENSE) file for details.