Agent startup
- Minimum initialization mode
- Only contain parts that are related to creating the initial connection to the CMR
- Agent tries to connect to CMR registration service.
- Adress of the CMR is defined by JVM parameters
- Agent provides its name (also given by JVM parameters)
- If connection is not possible, agent stays in minimum initialization mode (1) and keeps trying to connect to the CMR
Agent initialization
- (Agent can connect to the CMR)
- CMR find environment for the agent
- Environment is found by mapping table consisting of agent IP and name.
- If no environment is found, CMR and Agent log the problem and agent stop trying. Only restarting the agent will start over the process.
- CMR sends initial information to the agent called AgentConfiguration
- Based on the environment
- Agent-ID
- Configurations like sensors, strategies
- Full initialization mode
Update environment (instrumentation configuration)
- Enduser on the UI updates the configuration (environment)
- Update the AgentConfiguration for all agents using this environment
- Run the changed environment against the class cache again. Class cache returns changed entities:
- Class that was not instrumented before:
- Tell the agent to send the bytecode for this class again. (The class will undergo normal parsing & instrumentation process and the result will be returned to the agent.)
- Class that was instrumented before:
- Load original bytecode from cache in the CMR
- Run the instrumenter on this bytecode and send the bytecode to the agent.
- Class that was not instrumented before: