[
https://issues.apache.org/jira/browse/HIVE-27881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
László Bodor reassigned HIVE-27881:
-----------------------------------
Assignee: László Bodor
> Introduce hive javaagents to implement pluggable instrumentation
> ----------------------------------------------------------------
>
> Key: HIVE-27881
> URL: https://issues.apache.org/jira/browse/HIVE-27881
> Project: Hive
> Issue Type: Improvement
> Reporter: László Bodor
> Assignee: László Bodor
> Priority: Major
>
> From time to time, we face issues where only some runtime magic would help us
> investigate the problems, like agents or the aspect-oriented approach.
> I can recall the following jiras:
> HIVE-25806: socket leak, that was investigated finally by
> https://github.com/jenkinsci/lib-file-leak-detector/
> HIVE-26985: an idea about tracking Hive objects, that generated an argument
> about how to achieve that
> HIVE-27875: a socket leak again, which then turned out to be solved by
> HIVE-25736 upstream, I just missed this patch downstream
> Basically, using an agent means 2 things:
> 1) having the agent jar on local filesystem wherever hive components run
> 2) adding a javaagent clause to the JVM options
> 2) should be possible anytime, that's how we configure our products, right?
> but 1) is simply not possible in containerized environments: even if I can
> create an image + convince a customer to use that, that's a security concern,
> why would they use an unknown/unofficial image contaminated by an unknown
> agent (like lib-file-leak-detector above)
> Using agents is a good way to instrument our code on-demand, and it's crucial
> to make it easily pluggable, otherwise, we're gonna face performance problems
> (guess what happens if you watch and instrument every single socket and save
> their traces by default in your product :) )
> I think a set of instrumentation functionalities can be added to a hive
> module, which then leads to a hive-agents.jar, which by default can be
> included in any hive component's JVM args. The javaagent command line args
> will then drive what instrumentation we really want to turn on, like:
> {code}
> -javaagent:/lib/hive-agents-x.y.jar=socket-leak-detector,config-detector
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)