Comments (5)
Hey,
You are on the right track conceptually, but FilteringAggregation
is not a great base for what you are trying to accomplish. I'd suggest investigating implementing a completely custom aggregation which wraps around Empty
/EmptyInstance
, and performs the delta's in the result
method.
I realize this is what filtering aggregations do, but they are a bit more opinionated right now. What you do could be generalized into another aggregation archetype, maybe one that filtering should inherit from.
Good luck, and don't hesitate to follow up if you have more questions.
from heroic.
@udoprog Thanks, I'll keep you posted w/ progress & questions.
from heroic.
@udoprog I've created Delta / DeltaInstance
classes that extend Empty / EmptyInstance
. It seems that CollectorSession
in EmptyInstance
is a private static final class. I'm not sure how to override the result
function of a private class from within an extending class. Apologies, I am not a Java developer =( Would you be so kind as to set up the next few lines?
public class DeltaInstance extends EmptyInstance { @JsonCreator public DeltaInstance() { super(); } }
from heroic.
There´s no need to extend EmptyInstance, you can keep it as a field of DeltaInstance
.
public class DeltaInstance {
private final EmptyInstance inner = Empty.INSTANCE;
/* implement methods and delegate calls to inner */
}
This is basically how it's used in FilteringAggregation
here:
https://github.com/spotify/heroic/blob/master/aggregation/simple/src/main/java/com/spotify/heroic/aggregation/simple/FilterAggregation.java#L82
from heroic.
I've got a working Delta aggregation and will open a pull request later today for further discussion.
from heroic.
Related Issues (20)
- Configurable Option to Index Resource Identifiers in Elasticsearch
- Heroic Bigtable Consumer does not handle failures as expected HOT 10
- ## Codestyle: enforce consistent statement-spacing and indentation (See issue #720)
- Implement new Bigtable timeout settings
- Rework all timer-based Tests
- upgrade bigtable-client-core library from 1.12.1 to 1.18.1 (latest) to eliminate retries bug HOT 1
- Replace bigtable-client-core lib with com.google.cloud:google-cloud-bigtable
- Bigtable server-side and client-side & Heroic-side behaviour analysis HOT 1
- RotatingIndexMapping interval is not read from config
- Dynamically determine metadata read indices based upon query range
- Analyse Heroic and user's perspective when hitting a timeout. Then implement necessary changes. HOT 2
- Distribution Documentation
- Mandatory client ID filter does not return informational message upon query rejection
- Investigate & resolve nondeterministic build errors HOT 1
- add x-client-id to markdown documentation examples for /query/[metrics|batch]
- Instrument Bigtable timeouts (add metrics and log messages)
- Fix "...Span <span name> is GC'ed without being ended." issue (caused by a BT timeout) HOT 1
- Investigate potentially serious performance implications of seemingly unnecessary thread-per-log message logging implementation
- integrationTests requires "hidden" quay.io/testcontainers/ryuk docker image HOT 1
- Downloads often cancel (stall) and no auto-resuming happens. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from heroic.