Trace the prepare storage, deploy, and wait broker result phases of
plugin brokering.
Additionally clean up start tracing code slightly:
- Move span names to a separate file
- Move TracingUtil functionality into TracingTags
Signed-off-by: Angel Misevski <amisevsk@redhat.com>
- Group machine start traces under a separate span
- Move wait running and check servers spans out of start machines span
since the start machine span ends before check servers is complete
- Track wait running async and check servers spans separately
- Add tracing to bootstrap servers
Signed-off-by: Angel Misevski <amisevsk@redhat.com>
When enabled, tracing database calls fills each span with dozens of
hard-to-parse, ~1-100 ms spans. This commit allows enabling database
tracing separately, using the CHE_DB_TRACING_ENABLED environment
variable.
Signed-off-by: Angel Misevski <amisevsk@redhat.com>
Fix ZipUtilsWriteTest for Windows, slashes get converted inside
ZipUtils.
Add test for unzipping. This was not explicitely tested.
Signed-off-by: Gerben Oolbekkink <g.j.w.oolbekkink@gmail.com>
defined with the dockerimage recipe.
Note that this only works in kubernetes and openshift environments.
Signed-off-by: Lukas Krejci <lkrejci@redhat.com>
* Provide more informative error message in case of rejection on major websocket endpoint of JSON RPC stack
Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
* Introduced two web-socket endpoints for workspace master to split JSON-RPC messages
Based on Dmytro's Kulieshov work https://github.com/eclipse/che/pull/12252
Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
K8s does the expansion only if it already knows about the variable being
expanded.
This means we have to sort the environment variable list prior to sending
it to k8s in such a way that vars that reference others always follow the
referenced ones.
Signed-off-by: Lukas Krejci <lkrejci@redhat.com>
Provider of "cors.allowed.origins" setting for CORS Filter of WS Agent. Provides the value such algorithm:
1. If set che.wsagent.cors.allowed_origins
2. Server with "ide" attribute in workspace config
3. Server from url of "ide" link in workspace config
4. che.api
Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
* Adding support for @Traced annotation to enable whole method tracing
* Trace the creation and removal of workspace
* Trace the start of async start of the workspace
Note that this does not actually trace the async operations but merely
the "kick off" of those. For tracing the async operations, we need to
introduce support for propagating the span ids over the thread boundaries
using opentracing-concurrent.
* Enable tracing across the thread boundaries by augmenting the
WorkspaceSharedPool threadpool with tracing support.
Note that this does not add any new traces, merely enables the async
tracing.
* Add support for adding tags to @Traced methods.
The interceptor also reports the actual invoked class and method
(cleansed of Guice subclass name garbage)
* Trace the startup of pods during workspace startup.
* Trace stop of a workspace
* Introduce utility methods for tracing parts of methods.
* Trace provisioning of k8s objects (in both Kubernetes and Openshift
infrastructures).
* Create a common set of tags and enable strongly typed tags
* Apply the standard tags instead of hardcoded strings.
* Adding @Beta annotations for the tracing-related classes.
This needs to stabilize first.
* Replacing the "Traces" machinery with just annotated package private methods.
This way the code is easier to ready while we also keep all the flexibility
needed for the tag definitions.
* Rename CheTags to more descriptive TracingTags.
* Evaluate the tag values lazily.
This will reduce the load when tracing is switched off.
* Simplify the machine startup tracing logic and distinguish between
true error and mere cancellation due to prior errors.
* Trivial - applying formatting.
* Use getContext().getEnvironment().getMachines().size() to get the precise
number of machines that will be starting up.
* Trivial - change the name of the machine creation tag
* Use a formatted message instead of string concat.
* Update to the latest parent so that che-core-commons-tracing is correctly
incorporated into the full build.
* Fix tracing of the asynchronous stop of a workspace.
* Don't fall over when tracing is not available.
Allows running Che 7 workspace without any user environment but with Che 7 tooling set.
Workspace without environment has an empty list of environments and null value in `defaultEnv` field.
Field `activeEnv` is supposed to be `null` too.
What is changed:
- Migration of DB
- make defaultEnv nullable
- remove env_name from runtimes primary key
- make env_name in runtimes nullable
- Make code respect the fact that there are workspaces with no env
- settings API that returns the list of supported environment types returns no-environment type that - indicates that infrastructure support workspace with no environment at all.
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>