8000 [adapters] Log detailed checkpoint info on startup. by ryzhyk · Pull Request #5546 · feldera/feldera · GitHub
[go: up one dir, main page]

Skip to content

Conversation

@ryzhyk
Copy link
Contributor
@ryzhyk ryzhyk commented Feb 1, 2026

Log metadata about the checkpoint that the pipeline is starting from. We may want to make it less detailed or decrease log level to debug in the future if this info becomes available from the manager via the list checkpoint API prior to starting the pipeline.

Log metadata about the checkpoint that the pipeline is starting from.
We may want to make it less detailed or decrease log level to debug
in the future if this info becomes available from the manager via the
list checkpoint API prior to starting the pipeline.

Signed-off-by: Leonid Ryzhyk <ryzhyk@gmail.com>
@ryzhyk ryzhyk requested review from blp and Copilot and removed request for Copilot February 1, 2026 07:47
@ryzhyk ryzhyk added the connectors Issues related to the adapters/connectors crate label Feb 1, 2026
@ryzhyk
Copy link
Contributor Author
ryzhyk commented Feb 1, 2026

Example:

Checkpoint made at step 73:
  initial pipeline start time: 2026-02-01 07:22:20 UTC
  checkpoint timestamp: 2026-02-01T07:23:18.188+00:00
  records processed before the checkpoint: 866602
  checkpoint metadata: {"uuid":"019c1815-a72c-7b22-91c3-2ae84a773b1f","identifier":null,"fingerprint":17303102111549271889,"size":419113,"steps":73,"processed_records":866602}
  checkpointed input connector state:
    supplier.supplier: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
    lineitem.lineitem: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
    nation.nation: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
    region.region: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
    orders.orders: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
    partsupp.part
8000
supp: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
    part.part: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
    customer.customer: Object {"eoi": Bool(false), "snapshot_timestamp": Null, "version": Number(0)}
  checkpointed input connector metrics:
    nation.nation: {"circuit_input_records":25,"circuit_input_bytes":3074,"num_transport_errors":0,"num_parse_errors":0}
    supplier.supplier: {"circuit_input_records":1000,"circuit_input_bytes":177031,"num_transport_errors":0,"num_parse_errors":0}
    region.region: {"circuit_input_records":5,"circuit_input_bytes":824,"num_transport_errors":0,"num_parse_errors":0}
    customer.customer: {"circuit_input_records":15000,"circuit_input_bytes":3248585,"num_transport_errors":0,"num_parse_errors":0}
    orders.orders: {"circuit_input_records":150000,"circuit_input_bytes":21634208,"num_transport_errors":0,"num_parse_errors":0}
    lineitem.lineitem: {"circuit_input_records":600572,"circuit_input_bytes":111223991,"num_transport_errors":0,"num_parse_errors":0}
    part.part: {"circuit_input_records":20000,"circuit_input_bytes":3506113,"num_transport_errors":0,"num_parse_errors":0}
    partsupp.partsupp: {"circuit_input_records":80000,"circuit_input_bytes":19450415,"num_transport_errors":0,"num_parse_errors":0}
  checkpointed output connector metrics:

}

impl Checkpoint {
pub fn display_summary(&self) -> String {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why "display" and not just "summary"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The name emphasizes that the summary is formatted for display purposes. I think this is somewhat common in Rust.

@Karakatiza666
Copy link
Contributor

Is it difficult to format checkpointed input connector state as JSON? (like checkpointed input connector metrics)

@ryzhyk
Copy link
Contributor Author
ryzhyk commented Feb 1, 2026

Is it difficult to format checkpointed input connector state as JSON? (like checkpointed input connector metrics)

I already did this. The example doesn't reflect the latest version, sorry

@ryzhyk ryzhyk added this pull request to the merge queue Feb 2, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 2, 2026
@snkas snkas added this pull request to the merge queue Feb 2, 2026
Merged via the queue into main with commit ad9bcc6 Feb 2, 2026
6 of 7 checks passed
@snkas snkas deleted the checkpoint_logging branch February 2, 2026 12:49
@blp
Copy link
Member
blp commented Feb 2, 2026

The build failure above, at https://github.com/feldera/feldera/actions/runs/21582267321/job/62181961460, is a new one for me. I had to download the log archive to get it, and the failure looks like:

2026-02-02T08:28:02.6532580Z Attempt 1 of 5 failed with error: Request timeout: /twirp/github.actions.results.api.v1.CacheService/CreateCacheEntry. Retrying request in 3000 ms...
2026-02-02T08:28:10.6638923Z Attempt 2 of 5 failed with error: Request timeout: /twirp/github.actions.results.api.v1.CacheService/CreateCacheEntry. Retrying request in 4525 ms...
2026-02-02T08:28:20.2024608Z Attempt 3 of 5 failed with error: Request timeout: /twirp/github.actions.results.api.v1.CacheService/CreateCacheEntry. Retrying request in 7793 ms...
2026-02-02T08:28:33.0032790Z Attempt 4 of 5 failed with error: Request timeout: /twirp/github.actions.results.api.v1.CacheService/CreateCacheEntry. Retrying request in 12194 ms...
2026-02-02T08:28:45.5470257Z Failed to save: Unable to reserve cache with key cargo-registry-Linux-x86_64-unknown-linux-gnu-32b297a11c7442f3345a89940e8ac2f55d8aa5447f3c3e9cfe06fd7ad18bc30d, another job may be creating this cache.

Beats me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

connectors Issues related to the adapters/connectors crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

0