Giter Site home page Giter Site logo

Comments (7)

anton-povarov avatar anton-povarov commented on July 24, 2024

Reading that discussion - i would assume that the request is to have counters that live effectively forever (survive restarts, etc.)?

This is a non-goal for pinba imo.
Pinba's role in the stats pipeline is aggregation and convenient query-ing, but it's not a time-series storage engine.

There are plenty of those on the market anyway. It might be a nice idea to have easy integration with those tools, though.


if i got the idea wrong - feel free to elaborate.

from pinba2.

neanton avatar neanton commented on July 24, 2024

We are trying to implement an exporter from Pinba to a real time series database.

Other tools, eg. prometheus, handle counter resets, so surviving restart is not a big deal.
The main reason for counters is to get an absolute value. That way Prometheus can calculate rate during the scrape interval window.

Right now we can emulate counters using timers with a tag report so that we have a rolling 2 minute window of "counter-requests-hits". But this window can not be queried for a time interval of data (something like SELECT timer_name, hits WHERE time BETWEEN last_scrape_time AND current_time). That is why there is no ability to get absolute timer hits delta between scrapes and the only way is to export all data from Pinba as GAUGE type.

I hoped we can use Pinba as an alternative to Statsd (for internal application metrics), as it does it's job extremely well for collecting PHP metrics.

from pinba2.

anton-povarov avatar anton-povarov commented on July 24, 2024

Hm, i think i get it now.
Basically you want a way to figure out the physical 'time window' for the data returned in selects ?

This is a nice idea, but i'm kinda not sure how to do it interface-wise.
SQL tables are quite limited in what can be expressed with them.

Internally the data is stored in 1-second wide 'timeslices' (that are all merged on select) - just need to find a way to expose that info with sql interface.

Any ideas ?

from pinba2.

anton-povarov avatar anton-povarov commented on July 24, 2024

I was thinking of maybe making pinba internal stuff into a library that can be used to build other access interfaces (like a go daemon with it's own query language or whatever).
But that might be out of scope for this particular issue :)

from pinba2.

anton-povarov avatar anton-povarov commented on July 24, 2024

Another interpretation, suggested by @Sannis is:
You want a report that effectively has infinite time window (pinba_start_time, +inf).

This would mean that report never deletes anything.
This would require a different internal implementation, but should be pretty straightforward, and as a bonus - would actually perform better on selects.

from pinba2.

neanton avatar neanton commented on July 24, 2024

That seems a good idea and will provide enough information to integrate Pinba with other monitoring solutions. Not sure how much use it will make for Badoo team though :)

I think for now we’ll evaluate another alternative solutions for custom application metrics (seems like https://github.com/prometheus/statsd_exporter looks exactly what we need) and leave Pinba for general metrics and timers.

Thank you for your time on researching on this topic!

from pinba2.

anton-povarov avatar anton-povarov commented on July 24, 2024

Ok, i guess this is a "nice to have" feature from now on.

from pinba2.

Related Issues (12)

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.