Giter Site home page Giter Site logo

kobsio / klogs Goto Github PK

View Code? Open in Web Editor NEW
40.0 3.0 6.0 1.35 MB

Fast, scalable and reliable logging using Fluent Bit and ClickHouse

Home Page: https://kobs.io/main/plugins/klogs/

License: MIT License

Makefile 1.77% Shell 2.43% Dockerfile 1.71% Go 94.09%
kubernetes fluent-bit clickhouse logging kobs kobsio

klogs's People

Contributors

dependabot[bot] avatar monotek avatar ricoberger avatar unamedrus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

klogs's Issues

ClickHouse table schema

Hi,

Thanks for interesting project for log storing in ClickHouse.

There are couple suggestions for schema optimization:

ZSTD encoding multiple times slower to read than default LZ4.
https://kb.altinity.com/altinity-kb-schema-design/codecs/codecs-speed/

And for LowCardinality (high compressed columns) usually it doesn't make sense to use it, because compression ratio fine already.

  cluster LowCardinality(String) CODEC (ZSTD(1)),
  namespace LowCardinality(String) CODEC (ZSTD(1)),
  app String CODEC (ZSTD(1)),
  pod_name String CODEC (ZSTD(1)),
  container_name String CODEC (ZSTD(1)),

So i can suggest you to adjust like following:

  cluster LowCardinality(String),
  namespace LowCardinality(String),
  app LowCardinality(String)
  pod_name LowCardinality(String),
  container_name LowCardinality(String),

Even if it's possible to have a lot (well not that a lot, probably lower hundreds thousands) distinct app, pod_name, container_name, it's still perfectly fine to use LowCardinality here, because it work well as it's per part local dictionary.

  fields_string Nested(key String, value String) CODEC (ZSTD(1)),
  fields_number Nested(key String, value Float64) CODEC (ZSTD(1)),

It's make sense to use LowCardinality for key column here as well.

  fields_string Nested(key LowCardinality(String), value String),
  fields_number Nested(key LowCardinality(String), value Float64),
ORDER BY (cluster, namespace, app, pod_name, container_name, host, -toUnixTimestamp(timestamp));

As i understand host is k8s node hostname?
In that case, why it's almost last in ORDER BY clause?
BTW, why do you trying to reverse timestamp? because of a lot of queries with ORDER BY timestamp DESC?

If you can show result of this query for one of this table with a lot of data, it will be helpful.

SELECT
  database,
  table,
  column,
  type,
  sum(rows) AS rows,
  sum(column_data_compressed_bytes) AS compressed_bytes,
  formatReadableSize(compressed_bytes) AS compressed,
  formatReadableSize(sum(column_data_uncompressed_bytes)) AS uncompressed,
  sum(column_data_uncompressed_bytes) / compressed_bytes AS ratio,
  any(compression_codec) AS codec
FROM system.parts_columns AS pc
LEFT JOIN system.columns AS c
ON (pc.database = c.database) AND (c.table = pc.table) AND (c.name = pc.column)
WHERE (database LIKE '%') AND (table LIKE '%') AND active
GROUP BY
  database,
  table,
  column,
  type
ORDER BY database, table, sum(column_data_compressed_bytes) DESC

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.