Andrew, Sorry, was skiing.
> A user only had to specify an > additional -debug flag for the main shell script which would in turn take > care of any bootstrap rewriting/generation for allowing for the remote JVM > debug session to connect. So you dont want logging, you want a remote debugger session? 1) I expect many environments wont let devs just connect a debugger into a production network. In a prod network, we start with logs. 2) What about NiFi clusters? Distributed debugging, wow, now that gives me a headache. How would you connect a java debugger into a 3 node cluster? 3) Maybe you want to trap/breakpoint a list of exceptions and stop the java process to wait for a debugger to be attached? As our NiFi usage grows, the #1 most important feature is debug-ability of an issue in any environment. Andrew, as you have a lot more experience with issues you have seen in the past, how about a 30 minute call? This way can I figure out what debugging means to everyone, what information they need, and the best way to bootstrap it. Erik Anderson Bloomberg https://www.linkedin.com/in/erikanderson/ Sent from my iPad > On Feb 14, 2019, at 12:47 AM, Andrew Grande <apere...@gmail.com> wrote: > > Here's what I did previously, Erik. A user only had to specify an > additional -debug flag for the main shell script which would in turn take > care of any bootstrap rewriting/generation for allowing for the remote JVM > debug session to connect. Maybe it could give a few ideas. > > Andrew > > On Wed, Feb 13, 2019, 7:34 AM Erik Anderson <eand...@pobox.com> wrote: > >>> I was reading that email and was thinking of JVM debug options, with >>> suspend y/n. I guess it just shows we meant very different things by >> debug >>> mode. Maybe you could incorporate those into a PR too? >>> >>> Andrew >> >> Good point Andrew. and sorry for the slow response. I had to look at how >> NiFi set the JVM properties. >> >> We had issues with Java and needed to manually set env Java flags. >> >> It seems all of the Java debugging flags are set in the bootstrap.conf, >> located here. >> >> >> https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/bootstrap.conf >> >> For me, I chained together the Dockerfile >> ENTRYPOINT ["my_company_entry_point.sh"] >> then had it call the original entry point >> In short, all of NiFi properties are set via environment variables in a >> /etc/profile.d/nifi.sh on the host and propogate throughout the NiFi >> system. Like I listed in >> >> https://github.com/dprophet/nifi/blob/master/nifi-docker/dockerhub/CONFIGURATION.md >> >> I normalized all NIFI specific environment variables to start with NIFI_ >> >> Why? Because you set the >> >> export NIFI_FOO="my foo" >> >> and its directly passed into the container and into the NiFi role account >> used to start the container. You now have access to the environment >> variables throughout the NiFi system. >> >> Example: >> docker run --name nifi --env-file <(env | grep NIFI_) --hostname nifi >> >> IMO, the Dockerfile entry point should allow a plug and play script so you >> can set these custom behaviors (both enterprise behaviors and custom >> developer/debugging). I doubt any enterprise will blindly pull a DockerHub >> container and run it. From my experience, a public container isnt >> enterprise friendly. >> >> Andrew, define what you want for JVM debugging, what you would want to set >> (and unset), and I will take a look. >> >> Erik Anderson >> Bloomberg >> https://www.linkedin.com/in/erikanderson/ >>