ChronixDB / chronix.server

The Chronix Server implementation that is based on Apache Solr.
Apache License 2.0
263 stars 29 forks source link

Chronix v0.5-beta API and plugin-in documentation are not in sync #150

Closed alexnavis closed 5 years ago

alexnavis commented 5 years ago

Hi,

I was trying to implement a custom function(bucketed avg to reduce data points) with the plugin-in framework (following the Noop example).

I created a metric-functions.jar to deploy with the ChronixDb. I found the following issues:

1) Chronix v0.5-beta release - does not have the FunctionCtx in the current release version. I see the master is 66 commits ahead of the release which contains the FunctionCtx changes. Current Release(0.5-beta) has the below contract: ChronixFunction.execute(T timeSeries, FunctionValueMap functionValueMap). 2) Also the API(ChronixFunction) doesn't have way to set arguments setArguments(String[] args) (like the one in the latest documentation). I couldn't inject the arguments with the Guice @Inject as well. I'm stuck here.

Questions: 1) Is there a way to achieve the above to setArguments() for custom functions like (e.g., metric:{movavg:1,minutes} ) and make a workable plugin with the current Chronix v0.5-beta release ? 2) If it is not possible to use v0.5-beta release, is it possible for you to just make release a new version for the plugin with the current master code changes ?. This will be helpful for people to be in sync with the readme document. I spent some time to understand why it didn't work. 3) In the interim, is the master stable enough to use as the actual release ?. (I can do a local build to get the required jar).

Thanks, Alex

FlorianLautenschlager commented 5 years ago

Hi Alex,

thanks for reporting. I am currently working on migrating Chronix to the latest Apache Solr version. As soon as I am done, i will also update the documentation (i know its a mess). I am currently on a business trip and will dig into your questions this evening (UTC).

Best Regards, Florian

alexnavis commented 5 years ago

Sharing what I found so far to help you find things faster. Thank you for the quick reply @FlorianLautenschlager :).

Tag Chronix v0.5-beta: (below doesn't have the arguments passed to the plugin functions) https://github.com/ChronixDB/chronix.server/blob/52e954c13245bd90ba1e4fe0e1f3a2d293782b9a/chronix-server-query-handler/src/main/java/de/qaware/chronix/solr/query/analysis/QueryEvaluator.java#L85-L105

alexnavis commented 5 years ago

Hi @FlorianLautenschlager ,

Sorry to remind, I need to implement functions for a release soon. Any help on the questions for an interim solution would be great.

Thanks, Alex

FlorianLautenschlager commented 5 years ago

Hi @alexnavis ,

I need to fix a few things and will release a new version (hopefully) on Monday. Is this something that is working for you?

A new release should solve the questions from above.

Cheers, Florian

alexnavis commented 5 years ago

Hi @FlorianLautenschlager ,

Thanks a lot, it would work definitely. Please do let me know if I can help in any way.

Thanks, Alex

alexnavis commented 5 years ago

FYI: I forgot to mention about the dependency jar "chronix-server-plugin-management-0.5-beta.jar" which is a dependency for the plugin is not in the mvn repo. Currently it is not a problem for me, since I have used a local copy of the jar from the release bundle.

FlorianLautenschlager commented 5 years ago

@alexnavis I just pushed a 0.5 release with Apache Solr 8.1.1 under the hood. Thx for you comments. Will deploy the jars tomorrow into the maven repo. Time to get some sleep.

alexnavis commented 5 years ago

@FlorianLautenschlager Thanks a lot. Really appreciate the extra effort to complete this. Have good rest. Am excited to test the new version. Thank you.

alexnavis commented 5 years ago

Hi @FlorianLautenschlager,

The plugin functionality works great. Thanks for the help.

Just one question, the solarconfig.xml packaged in the chronix/conf directory in the 0.5 build has the 6.2.1.

Any specific reason we cannot upgrade this to latest Lucene version ?

Thanks, Alex

FlorianLautenschlager commented 5 years ago

Hi @alexnavis ,

The plugin functionality works great. Thanks for the help.

Thank you for the feedback.

Just one question, the solarconfig.xml packaged in the chronix/conf directory in the 0.5 build has the 6.2.1.

Any specific reason we cannot upgrade this to latest Lucene version ?

No. Missed to update the value.

Cheers, Florian

alexnavis commented 5 years ago

Thanks Florian. I will close this card.

Please do recommend if the defaults fields (e.g., start, end) should have docValues values enabled to take advantage of the latest changes.

Thanks.