pyroscope-java icon indicating copy to clipboard operation
pyroscope-java copied to clipboard

Can we change the configuration like sampling duration at runtime without restarting the app?

Open Nitish1210 opened this issue 1 year ago • 1 comments

Currently, we can provide the sampling duration at the time of building configuration and then we provide that configuration to PyroscopeAgent.start(config) method.

But i didn't find any method/api so that i can change the sampling duration/sampling rate after starting the agent without restarting the app.

Please let me know if we can achieve this behavior already and i have missed it or it is not possible for now with current code.

Thanks.

    PyroscopeAgent.start(
        new Config.Builder()
            .setApplicationName("app-java")
            .setProfilingEvent(EventType.ITIMER)
            .setFormat(Format.JFR)
            //pyroscope is service name
            // pyroscope-test is namespace in which pyroscope service is running and listening for profiling data
            .setServerAddress("http://pyroscope.pyroscope-test.cluster.local:4040")
            // Optionally, if authentication is enabled, specify the API key.
            // .setAuthToken(System.getenv("PYROSCOPE_AUTH_TOKEN"))
            // Optionally, if you'd like to sets allocation threshold to register events, in bytes. '0' registers all events
            // .setProfilingAlloc("0")
            .setSamplingDuration(Duration.ofSeconds(1))
            .build()
    );

Nitish1210 avatar Nov 05 '23 20:11 Nitish1210

Currently not possible. You can work around it by creating a custom ProfilingScheduler.

korniltsev avatar Dec 13 '23 14:12 korniltsev