Skip to content

Commit

Permalink
fix(docs): warn java users setting alloc/lock to 0 is not a good idea (
Browse files Browse the repository at this point in the history
…#2352)

* fix(docs): warn users setting alloc/lock to 0 is not a good idea

* Update docs/sources/configure-client/language-sdks/java.md

Co-authored-by: Dmitry Filimonov <[email protected]>

* update lock as well

* typo

---------

Co-authored-by: Dmitry Filimonov <[email protected]>
  • Loading branch information
korniltsev and petethepig authored Sep 1, 2023
1 parent 8656bde commit 0e65441
Showing 1 changed file with 19 additions and 20 deletions.
39 changes: 19 additions & 20 deletions docs/sources/configure-client/language-sdks/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,26 +116,25 @@ for configuration in multiple sources: system properties, environment variables,

The Java integration supports JFR format to be able to support multiple events (JFR is the only output format that supports [multiple events in `async-profiler`](https://github.com/jvm-profiling-tools/async-profiler#multiple-events)). There are several environment variables that define how multiple event configuration works:


|Flag |Description |
|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`PYROSCOPE_FORMAT` |sets the profiler output format. The default is `collapsed`, but in order to support multiple formats it must be set to `jfr`. |
|`PYROSCOPE_PROFILER_EVENT` |sets the profiler event. With JFR format enabled, this event refers to one of the possible CPU profiling events: `itimer`, `cpu`, `wall`. The default is `itimer`. |
|`PYROSCOPE_PROFILER_ALLOC` |sets the allocation threshold to register the events, in bytes (equivalent to `--alloc=` in `async-profiler`). The default value is `""` - empty string, which means that allocation profiling is disabled. Setting it to `0` will register all the events. |
|`PYROSCOPE_PROFILER_LOCK` |sets the lock threshold to register the events, in nanoseconds (equivalent to `--lock=` in `async-profiler`). The default value is `""` - empty string, which means that lock profiling is disabled. Setting it to `0` will register all the events. |
|`PYROSCOPE_CONFIGURATION_FILE` |sets an additional properties configuration file. The default value is `pyroscope.properties`. |
|`PYROSCOPE_BASIC_AUTH_USER` |HTTP Basic authentication username. The default value is `""` - empty string, no authentication. |
|`PYROSCOPE_BASIC_AUTH_PASSWORD` |HTTP Basic authentication password. The default value is `""` - empty string, no authentication. |
|`PYROSCOPE_TENANT_ID` |pyroscope tenant ID, passed as X-Scope-OrgID http header. The default value is `""` - empty string, no tenant ID. |
|`PYROSCOPE_HTTP_HEADERS` |extra http headers in json format, for example: `{"X-Header": "Value"}`. The default value is `{}` - no extra headers. |
|`PYROSCOPE_LABELS` |sets static labels in the form of comma separated `key=value` pairs. The default value is `""` - empty string, no labels. |
|`PYROSCOPE_LOG_LEVEL` |determines the level of verbosity for Pyroscope's logger. Available options include `debug`, `info`, `warn`, and `error`. The default value is set to `info`. |
|`PYROSCOPE_PUSH_QUEUE_CAPACITY` |specifies the size of the ingestion queue that temporarily stores profiling data in memory during network outages. The default value is set to 8. |
|`PYROSCOPE_INGEST_MAX_TRIES` |sets the maximum number of times to retry an ingestion API call in the event of failure. A value of -1 indicates that the retries will continue indefinitely. The default value is set to 8. |
|`PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR` |sets the level of GZIP compression applied to uploaded JFR files. This option accepts values of `NO_COMPRESSION`, `BEST_SPEED`, `BEST_COMPRESSION`, and `DEFAULT_COMPRESSION`. |
|`PYROSCOPE_EXPORT_COMPRESSION_LEVEL_LABELS`|operates similarly to `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR`, but applies to the dynamic labels part. The default value is set to `BEST_SPEED`. |
|`PYROSCOPE_ALLOC_LIVE` |is a boolean value that enables live object profiling when set to true. It is disabled by default. |
|`PYROSCOPE_GC_BEFORE_DUMP` |is a boolean value that executes a `System.gc()` command before dumping the profile when set to true. This option may be useful for live profiling, but is disabled by default. |
| Flag | Description |
|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `PYROSCOPE_FORMAT` | sets the profiler output format. The default is `collapsed`, but in order to support multiple formats it must be set to `jfr`. |
| `PYROSCOPE_PROFILER_EVENT` | sets the profiler event. With JFR format enabled, this event refers to one of the possible CPU profiling events: `itimer`, `cpu`, `wall`. The default is `itimer`. |
| `PYROSCOPE_PROFILER_ALLOC` | sets the allocation threshold to register the events, in bytes (equivalent to `--alloc=` in `async-profiler`). The default value is `""` - empty string, which means that allocation profiling is disabled. Setting it to 0 will register every event, causing significant CPU and network overhead, making it not suitable production environments. We recommend setting a starting value of 512k and adjusting it as needed. |
| `PYROSCOPE_PROFILER_LOCK` | sets the lock threshold to register the events, in nanoseconds (equivalent to `--lock=` in `async-profiler`). The default value is `""` - empty string, which means that lock profiling is disabled. Setting it to 0 will register every event, causing significant CPU and network overhead, making it not suitable production environments. We recommend setting a starting value of 10ms and adjusting it as needed. |
| `PYROSCOPE_CONFIGURATION_FILE` | sets an additional properties configuration file. The default value is `pyroscope.properties`. |
| `PYROSCOPE_BASIC_AUTH_USER` | HTTP Basic authentication username. The default value is `""` - empty string, no authentication. |
| `PYROSCOPE_BASIC_AUTH_PASSWORD` | HTTP Basic authentication password. The default value is `""` - empty string, no authentication. |
| `PYROSCOPE_TENANT_ID` | pyroscope tenant ID, passed as X-Scope-OrgID http header. The default value is `""` - empty string, no tenant ID. |
| `PYROSCOPE_HTTP_HEADERS` | extra http headers in json format, for example: `{"X-Header": "Value"}`. The default value is `{}` - no extra headers. |
| `PYROSCOPE_LABELS` | sets static labels in the form of comma separated `key=value` pairs. The default value is `""` - empty string, no labels. |
| `PYROSCOPE_LOG_LEVEL` | determines the level of verbosity for Pyroscope's logger. Available options include `debug`, `info`, `warn`, and `error`. The default value is set to `info`. |
| `PYROSCOPE_PUSH_QUEUE_CAPACITY` | specifies the size of the ingestion queue that temporarily stores profiling data in memory during network outages. The default value is set to 8. |
| `PYROSCOPE_INGEST_MAX_TRIES` | sets the maximum number of times to retry an ingestion API call in the event of failure. A value of -1 indicates that the retries will continue indefinitely. The default value is set to 8. |
| `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR` | sets the level of GZIP compression applied to uploaded JFR files. This option accepts values of `NO_COMPRESSION`, `BEST_SPEED`, `BEST_COMPRESSION`, and `DEFAULT_COMPRESSION`. |
| `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_LABELS` | operates similarly to `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR`, but applies to the dynamic labels part. The default value is set to `BEST_SPEED`. |
| `PYROSCOPE_ALLOC_LIVE` | is a boolean value that enables live object profiling when set to true. It is disabled by default. |
| `PYROSCOPE_GC_BEFORE_DUMP` | is a boolean value that executes a `System.gc()` command before dumping the profile when set to true. This option may be useful for live profiling, but is disabled by default. |

## Sending data to Pyroscope OSS or Grafana Cloud Profiles with Pyroscope java SDK

Expand Down

0 comments on commit 0e65441

Please sign in to comment.