feaT: Add Loki egg (#1606)

Co-authored-by: softwarenoob <admin@softwarenoob.com>
This commit is contained in:
realkarmakun 2022-07-04 03:51:38 +06:00 committed by GitHub
parent 7e883d1e0b
commit 76df21e79f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 75 additions and 3 deletions

View File

@ -255,6 +255,7 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [TShock](game_eggs/terraria/tshock)
[Tycoon Games](game_eggs/tycoon_games)
* [OpenRCT2](game_eggs/tycoon_games/openrct2)
* [OpenTTD](game_eggs/tycoon_games/openttd)
@ -270,6 +271,10 @@ If you are reading this it looks like you are looking to add an egg to your serv
## [Monitoring](/monitoring/)
### Loki
* [Loki](/monitoring/loki)
### Prometheus
* [Prometheus](/monitoring/prometheus)

25
monitoring/loki/README.md Normal file
View File

@ -0,0 +1,25 @@
# Loki
## From the [Loki](https://github.com/grafana/loki) GitHub repository
Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate.
## Working with Loki
To get logs "into" Loki you need a scrape agent, such as official [Promtail](https://grafana.com/docs/loki/latest/clients/promtail/installation/) or a library for your app that can push logs through HTTP endpoint (gRPC endpoint is disabled in Docker enviroment by default)
## Resource consumption
As this egg sets up Loki in single node mode, it can consume a lot of disk space really fast. It is possible to setup different kind of storages for different parts of Loki files. For further information refer to official [Loki documentation](https://grafana.com/docs/loki/latest/operations/storage/).
To get started, you can go with a minimum of 3GB RAM and >=2.5GB disk space.
Keep in mind that those numbers can grow pretty quick!
## Server Ports
Ports required to run the server in a table format.
| Port | default |
|-------------|---------|
| Loki server | 3100 |

View File

@ -0,0 +1,42 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2022-07-03T17:40:29-04:00",
"name": "Loki",
"author": "unknown@unknown.com",
"description": "Prometheus but for logs. This egg is for Loki instance only! You usually need pushing agents like Promtail to put logs in this",
"features": null,
"docker_images": {
"ghcr.io\/pterodactyl\/yolks:debian": "ghcr.io\/pterodactyl\/yolks:debian"
},
"file_denylist": [],
"startup": ".\/loki-linux-amd64 -config.file=loki-docker-config.yaml",
"config": {
"files": "{\r\n \"loki-docker-config.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"server.http_listen_port\": \"{{server.build.default.port}}\",\r\n \"common.ring.instance_addr\": \"0.0.0.0\",\r\n \"common.path_prefix\": \"\/home\/container\/loki\",\r\n \"common.storage.filesystem.chunks_directory\": \"\/home\/container\/loki\/chunks\",\r\n \"common.storage.filesystem.rules_directory\": \"\/home\/container\/loki\/rules\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Loki started\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Switch to mounted working install directory\r\ncd \/mnt\/server\r\n\r\n# Download and extract Loki\r\n\r\nif [ \"$LOKI_VERSION\" = \"latest\" ]; then LOKI_VERSION=$(curl --silent \"https:\/\/api.github.com\/repos\/grafana\/loki\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/' | cut -c2-); fi\r\necho -e \"running curl -L https:\/\/github.com\/grafana\/loki\/releases\/download\/v${LOKI_VERSION}\/loki-linux-amd64.zip --output loki-linux-amd64.zip\"\r\ncurl -L https:\/\/github.com\/grafana\/loki\/releases\/download\/v${LOKI_VERSION}\/loki-linux-amd64.zip --output loki-linux-amd64.zip\r\nunzip loki-linux-amd64.zip\r\nrm -rf loki-linux-amd64.zip\r\ncurl -L https:\/\/raw.githubusercontent.com\/grafana\/loki\/v${LOKI_VERSION}\/cmd\/loki\/loki-docker-config.yaml --output loki-docker-config.yaml\r\necho -e \"installation completed\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Loki Version",
"description": "The version of Loki to use.\r\n\r\nFind all versions from https:\/\/github.com\/grafana\/loki",
"env_variable": "LOKI_VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
}
]
}