2024 · ACM/SPEC International Conference on Performance Engineering (ICPE)

An Adaptive Logging System (ALS): Enhancing Software Logging with Reinforcement Learning Techniques

Amirmahdi Khosravi Tabrizi | Naser Ezzati-Jivan | Francois Tetreault

Evidence basis: full-text-reviewed · Review status: catalog-reviewed; paper-author approval pending

observability performance-engineering machine-learning trace-reduction

adaptive logging ALS reinforcement learning log placement log level selection performance bugs Python AST Stable-Baselines DQN A2C PPO Apache Django cross-project evaluation Ciena source-code features

Core contribution: ALS uses source-code features and reinforcement learning to recommend which Python functions to log and which log levels to use for performance-bug diagnosis.

Problem and motivation

Logging can provide essential postmortem evidence but adds code, storage, and runtime cost. Existing log-placement systems are tied to fixed objectives and show weak cross-project transfer; resource-constrained environments need adaptable performance-bug logging (pp. 1-3).

Method and contribution

ALS extracts 12 static Python source features covering loops, synchronization issues, and Django ORM API misuses. Python AST FunctionDef nodes are collected from cloned GitHub repositories; five discrete actions select not-log, Trace, Debug, Info, or Warn. Error/Fatal are excluded because the policy uses static features. A deterministic RL environment uses rewards from -4 to +2; DQN, A2C, and PPO are evaluated through Stable-Baselines/OpenAI Baselines (pp. 3-8).

Findings and evidence

The dataset contains 17 projects (11 Apache, 6 Django), 4,235 Python files, and 93,484 functions: 56,755 training functions/1,421 files and 36,729 testing functions/2,814 files (p. 7, Table 2). All three methods show positive reward trends by the end of the first of eight episodes; DQN is reported as the most stable in training and cross-project evaluation (pp. 8-9). No accuracy, logging-overhead, or production-quality number is reported.

Limitations and future directions

Limitations: Python-only static features; no dynamic CPU/memory terms; one agent handles both placement and level; function selection does not specify complete log content; project/algorithm coverage and reward design limit generalization. Production/Ciena deployment is future work, not completed evaluation.

Future work: Multi-language AST/LLM/Jina features, CPU/memory reward terms, dual-agent placement/level control, integration with LLM/RLHF and logging frameworks, and deployment/evaluation in Ciena's operational context (pp. 9-10).

Sources and identifiers

When to cite this paper

Cite this paper when your work uses or compares an RL formulation in which source-function observations select both whether to log and which verbosity level to use.

Citation

BibTeX
@inproceedings{ezzatiJivan2024anadaptive,
  author = {Amirmahdi Khosravi Tabrizi and Naser Ezzati-Jivan and Francois Tetreault},
  title = {An Adaptive Logging System (ALS): Enhancing Software Logging with Reinforcement Learning Techniques},
  year = {2024},
  booktitle = {ACM/SPEC International Conference on Performance Engineering (ICPE)},
  pages = {37-47},
  publisher = {ACM},
  doi = {10.1145/3629526.3645033},
  url = {https://doi.org/10.1145/3629526.3645033}
}
Other citation formats for Word and reference managers
APA 7
Tabrizi, A. K., Ezzati-Jivan, N., & Tetreault, F. (2024). An Adaptive Logging System (ALS): Enhancing Software Logging with Reinforcement Learning Techniques. In ACM/SPEC International Conference on Performance Engineering (ICPE) (pp. 37-47). https://doi.org/10.1145/3629526.3645033
IEEE
A. K. Tabrizi, N. Ezzati-Jivan, and F. Tetreault, "An Adaptive Logging System (ALS): Enhancing Software Logging with Reinforcement Learning Techniques," in ACM/SPEC International Conference on Performance Engineering (ICPE), pp. 37-47, 2024, doi: 10.1145/3629526.3645033

Readable Markdown record · JSON record · Download RIS