apache / apache/accumulo

Implement lifecycle logging

Open
#1,316 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.2k
Forks
487
Avg merge
4d 5h
Merged PRs (30d)
13

Description

Following the lifecycle of certain events in Accumulo via documented logical loggers would be really nice. For example it would be nice to be able to follow the lifecycle of a write ahead log across the master, tserver, and GC using a logger name like `org.apache.accumulo.log.wal` that does not correspond to any class. These logical loggers could be documented in the Accumulo user manual, like [Fluo does](https://fluo.apache.org/docs/fluo/1.2/administration/manage-applications#debugging-applications).

Could have life cycle logging for the following events to start with

* Write ahead logs
* Tablet events (like assignment, loading, compaction, scan, update, unload, recovery, etc). All tablet events could be logged under `org.apache.accumulo.log.tablet`. Something like scan could be logged under `org.apache.accumulo.log.tablet.scan` at trace allowing a user to turn on trace scanning for scans only.
* FATE operations like bulk import could log everything related to bulk import in client, master, and tserver under `org.apache.accumulo.log.bulk`.

One way to implement this would be to create class with static methods for each life-cycle we want to log. For example all logging of tablet lifecycle events would be done in a single class via static methods. The advantage of this approach is that it brings all of the logging together in one place in the code which will lead to more consistent log messages.

Most existing log messages should not follow this approach.

Contributor guide

Open the contributing guide

Research direction

No source files or tests are named. Start by reviewing existing logging for write-ahead logs, tablet events, and FATE or bulk-import operations across the master, tserver, and GC, then compare the proposed user-manual treatment with Fluo’s debugging documentation. Done means an agreed scope for logical logger names, lifecycle coverage, consistent messages, and corresponding Accumulo user-manual documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems, documentation, observability-sre
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.