Skip to content

feat(router): improved logging#775

Draft
dotansimha wants to merge 12 commits intomainfrom
logging
Draft

feat(router): improved logging#775
dotansimha wants to merge 12 commits intomainfrom
logging

Conversation

@dotansimha
Copy link
Member

@dotansimha dotansimha commented Feb 16, 2026

  • figure out config + shortcut
  • config overrides with env vars
  • testing
  • stdout exporter with non-blocking writer
  • file expoter with non-blocking writer + rolling log file
  • filter out internal crates
  • figure out request logging
  • clear all usages of current logging setup
  • access logs
  • documentation
  • logging best practices in styleguide
  • figure out integration with OTEL spans
  • logs correlation based on req-id

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @dotansimha, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly upgrades the router's logging infrastructure by implementing structured logging throughout the application. It introduces a robust request correlation ID mechanism, enabling comprehensive tracing of individual requests from inception to completion. The logging system is now highly configurable, supporting various output formats and destinations, which greatly enhances the router's observability and simplifies debugging efforts.

Highlights

  • Structured Logging Implementation: Migrated various log messages across the router to use structured logging with key-value pairs, improving log readability and queryability.
  • Request Correlation IDs: Introduced a system to generate or extract unique request correlation IDs (from 'x-request-id' header or 'sonyflake') and attach them to root logging spans for end-to-end request tracing.
  • Flexible Logging Configuration: Refactored the logging setup to support multiple output exporters (stdout, file) and advanced features like rolling file logs, configurable via the 'LoggingConfig'.
  • New Dependencies: Added 'sonyflake' for ID generation and 'tracing-appender' for advanced logging output management.
  • Enhanced Error Logging: Improved error and timeout messages in the GraphQL endpoint handler and subgraph executors with more context-rich structured fields.
Changelog
  • Cargo.lock
    • Updated dependencies to include 'sonyflake', 'tracing-appender', and network-related crates ('ipnetwork', 'no-std-net', 'pnet_base', 'pnet_datalink', 'pnet_sys').
  • Cargo.toml
    • Added 'tracing-appender' as a dependency.
  • bin/router/Cargo.toml
    • Added 'tracing-appender' and 'sonyflake' as dependencies.
  • bin/router/src/background_tasks/mod.rs
    • Modified logging statements to use structured fields and adjusted log levels for shutdown messages.
  • bin/router/src/lib.rs
    • Integrated request correlation ID generation, wrapped the GraphQL endpoint handler with a root logging span, and enhanced error logging for timeouts and request failures.
  • bin/router/src/request_id.rs
    • Added a new module responsible for obtaining or generating unique request correlation IDs.
  • bin/router/src/schema_state.rs
    • Updated logging for supergraph updates and errors to include structured details.
  • bin/router/src/supergraph/file.rs
    • Enhanced logging messages for file-based supergraph loading with structured 'file_path' information.
  • bin/router/src/supergraph/hive.rs
    • Introduced structured logging to indicate supergraph changes and loading status from Hive Console.
  • bin/router/src/telemetry.rs
    • Refactored telemetry initialization to leverage the new internal logging module and manage 'tracing-appender' worker guards.
  • config.dev.yaml
    • Added a new development configuration file with file-based supergraph source and debug-level text logging.
  • docs/README.md
    • Updated the documentation for the 'log' configuration to reflect the new structured and extensible logging options.
  • lib/executor/src/executors/error.rs
    • Adjusted the 'RequestFailure' error message to be more generic, allowing specific details to be added via structured logging.
  • lib/executor/src/executors/http.rs
    • Implemented structured logging for HTTP requests to subgraphs, including endpoint, subgraph name, status, and error details.
  • lib/internal/Cargo.toml
    • Added 'tracing-appender' dependency to the internal library.
  • lib/internal/src/lib.rs
    • Introduced a new 'logging' module.
  • lib/internal/src/logging/file.rs
    • Added a new module to provide file-based logging capabilities with rolling file support.
  • lib/internal/src/logging/mod.rs
    • Created a new module to centralize the creation and management of logging layers and appender guards.
  • lib/internal/src/logging/stdout.rs
    • Added a new module for configuring stdout logging.
  • lib/internal/src/logging/utils.rs
    • Provided utility functions for creating environment filters and defining dynamic logging layers.
  • lib/router-config/src/env_overrides.rs
    • Updated module imports to align with the new logging configuration structure.
  • lib/router-config/src/log/access_log.rs
    • Added a new module for access log configuration.
  • lib/router-config/src/log/mod.rs
    • Defined the new, more flexible 'LoggingConfig' structure.
  • lib/router-config/src/log/service.rs
    • Added a new module detailing service logging exporters, including stdout and file options.
  • lib/router-config/src/log/shared.rs
    • Renamed from 'lib/router-config/src/log.rs' and updated log format options to 'Text' and 'Json'.
Activity
  • No specific activity has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces significant improvements to the logging infrastructure, including refactored configuration, structured logging, and request correlation IDs, which are excellent for observability and debugging. The feedback provided aims to further enhance error handling and robustness, aligning with our centralized error logging principles and ensuring descriptive panic messages where errors cannot be gracefully propagated.

+ Sync,
{
let (file_writer, file_guard) = match &config.rolling {
None => tracing_appender::non_blocking(File::create(&config.path).expect("oops")),
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

Using .expect("oops") violates the style guide (Rule K) by not providing a descriptive error message. Ideally, this function should return a Result to allow errors to be propagated up for centralized handling, as per the repository's error logging guidelines. If returning a Result is not feasible in this context, then any panic must include a descriptive message explaining why the condition should never occur.

Suggested change
None => tracing_appender::non_blocking(File::create(&config.path).expect("oops")),
None => tracing_appender::non_blocking(File::create(&config.path).unwrap_or_else(|e| panic!("Failed to create log file at '{}': {}", config.path, e))),
References
  1. Rule K states that any function that can panic, such as unwrap(), must include a descriptive error message via expect() or panic!() to explain why the condition should never occur. Using .expect("oops") or having unhandled panics with non-descriptive messages is a violation. (link)
  2. Error logging should be centralized. Errors should be propagated up the call stack using Result and the ? operator to a designated handler, rather than panicking or logging at the point of occurrence in lower-level modules.

Comment on lines 23 to 26
let file_name = path
.file_name()
.and_then(|name| name.to_str())
.expect("oops");
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

Using .expect("oops") here can cause a panic with an unhelpful message if the provided log file path is invalid. This violates the style guide's rule on providing descriptive panic messages (Rule K). Ideally, this operation should return a Result to allow errors to be propagated up for centralized handling, as per the repository's error logging guidelines. If returning a Result is not feasible in this context, then any panic must include a descriptive message explaining why this condition should never occur.

Suggested change
let file_name = path
.file_name()
.and_then(|name| name.to_str())
.expect("oops");
let file_name = path
.file_name()
.and_then(|name| name.to_str())
.unwrap_or_else(|| {
panic!("Invalid log file path: could not determine filename from '{}'", config.path)
});
References
  1. Rule K states that any function that can panic, such as unwrap(), must include a descriptive error message via expect() or panic!() to explain why the condition should never occur. Using .expect("oops") or having unhandled panics with non-descriptive messages is a violation. (link)
  2. Error logging should be centralized. Errors should be propagated up the call stack using Result and the ? operator to a designated handler, rather than panicking or logging at the point of occurrence in lower-level modules.

.file_name()
.and_then(|name| name.to_str())
.expect("oops");
let directory = path.parent().and_then(|p| p.to_str()).expect("oops");
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

Using .expect("oops") here can cause a panic with an unhelpful message if the provided log file path is invalid. This violates the style guide's rule on providing descriptive panic messages (Rule K). Ideally, this operation should return a Result to allow errors to be propagated up for centralized handling, as per the repository's error logging guidelines. If returning a Result is not feasible in this context, then any panic must include a descriptive message explaining why this condition should never occur.

Suggested change
let directory = path.parent().and_then(|p| p.to_str()).expect("oops");
let directory = path.parent().and_then(|p| p.to_str()).unwrap_or_else(|| {
panic!("Invalid log file path: could not determine directory from '{}'", config.path)
});
References
  1. Rule K states that any function that can panic, such as unwrap(), must include a descriptive error message via expect() or panic!() to explain why the condition should never occur. Using .expect("oops") or having unhandled panics with non-descriptive messages is a violation. (link)
  2. Error logging should be centralized. Errors should be propagated up the call stack using Result and the ? operator to a designated handler, rather than panicking or logging at the point of occurrence in lower-level modules.

return RequestIdentifier::Generated(id);
}

RequestIdentifier::Generated(0)
Copy link
Contributor

Choose a reason for hiding this comment

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

high

Falling back to a static 0 for the request ID when SONYFLAKE.next_id() fails can lead to multiple requests sharing the same ID. This undermines the purpose of a correlation ID and can make debugging and tracing very difficult. A failure here likely indicates a serious system issue (e.g., clock moving backward), which should be handled more explicitly. Consider panicking with a descriptive message, which would be consistent with the expect used for Sonyflake initialization, and adheres to the style guide (Rule K).

Suggested change
RequestIdentifier::Generated(0)
panic!("Failed to generate Sonyflake ID. This may indicate a system clock issue.");
References
  1. Rule K states that any function that can panic, such as unwrap(), must include a descriptive error message via expect() or panic!() to explain why the condition should never occur. Using .expect("oops") or having unhandled panics with non-descriptive messages is a violation. (link)

Comment on lines +23 to 25
#[error("Failed to send request to subgraph")]
#[strum(serialize = "SUBGRAPH_REQUEST_FAILURE")]
RequestFailure(String, String),
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The error message for RequestFailure has been changed to be less specific, removing the subgraph endpoint and the underlying error details. While the new structured logging at the call site is a great improvement, this change can lead to loss of context when the error is propagated and logged at higher levels in the call stack. The Display implementation of an error should ideally be self-contained and provide enough context for debugging. Please consider restoring the previous, more detailed error message.

Suggested change
#[error("Failed to send request to subgraph")]
#[strum(serialize = "SUBGRAPH_REQUEST_FAILURE")]
RequestFailure(String, String),
#[error("Failed to send request to subgraph \"{0}\": {1}")]
#[strum(serialize = "SUBGRAPH_REQUEST_FAILURE")]
RequestFailure(String, String),

@github-actions
Copy link

github-actions bot commented Feb 16, 2026

k6-benchmark results

     ✓ response code was 200
     ✓ no graphql errors
     ✓ valid response structure

     █ setup

     checks.........................: 100.00% ✓ 216906      ✗ 0    
     data_received..................: 6.3 GB  210 MB/s
     data_sent......................: 85 MB   2.8 MB/s
     http_req_blocked...............: avg=3.71µs   min=677ns   med=1.97µs  max=12.26ms  p(90)=2.84µs   p(95)=3.23µs  
     http_req_connecting............: avg=418ns    min=0s      med=0s      max=4.5ms    p(90)=0s       p(95)=0s      
     http_req_duration..............: avg=20.25ms  min=1.81ms  med=19.21ms max=112.51ms p(90)=28.05ms  p(95)=31.48ms 
       { expected_response:true }...: avg=20.25ms  min=1.81ms  med=19.21ms max=112.51ms p(90)=28.05ms  p(95)=31.48ms 
     http_req_failed................: 0.00%   ✓ 0           ✗ 72322
     http_req_receiving.............: avg=196.18µs min=29.74µs med=52.28µs max=82.19ms  p(90)=123.53µs p(95)=504.15µs
     http_req_sending...............: avg=26.85µs  min=5.19µs  med=11.83µs max=32.31ms  p(90)=17.55µs  p(95)=25.88µs 
     http_req_tls_handshaking.......: avg=0s       min=0s      med=0s      max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=20.02ms  min=1.76ms  med=19.04ms max=55.96ms  p(90)=27.75ms  p(95)=31.06ms 
     http_reqs......................: 72322   2405.811333/s
     iteration_duration.............: avg=20.73ms  min=5.62ms  med=19.57ms max=250.83ms p(90)=28.51ms  p(95)=32.02ms 
     iterations.....................: 72302   2405.146028/s
     vus............................: 50      min=50        max=50 
     vus_max........................: 50      min=50        max=50 

@github-actions
Copy link

github-actions bot commented Feb 16, 2026

🐋 This PR was built and pushed to the following Docker images:

Image Names: ghcr.io/graphql-hive/router

Platforms: linux/amd64,linux/arm64

Image Tags: ghcr.io/graphql-hive/router:pr-775 ghcr.io/graphql-hive/router:sha-69a5fb4

Docker metadata
{
"buildx.build.provenance/linux/amd64": {
  "builder": {
    "id": "https://github.com/graphql-hive/router/actions/runs/22171850416/attempts/1"
  },
  "buildType": "https://mobyproject.org/buildkit@v1",
  "materials": [
    {
      "uri": "pkg:docker/docker/dockerfile@1.21",
      "digest": {
        "sha256": "27f9262d43452075f3c410287a2c43f5ef1bf7ec2bb06e8c9eeb1b8d453087bc"
      }
    },
    {
      "uri": "pkg:docker/gcr.io/distroless/cc-debian12@latest?platform=linux%2Famd64",
      "digest": {
        "sha256": "329e54034ce498f9c6b345044e8f530c6691f99e94a92446f68c0adf9baa8464"
      }
    }
  ],
  "invocation": {
    "configSource": {
      "entryPoint": "router.Dockerfile"
    },
    "parameters": {
      "frontend": "gateway.v0",
      "args": {
        "cmdline": "docker/dockerfile:1.21",
        "label:org.opencontainers.image.created": "2026-02-19T07:10:36.758Z",
        "label:org.opencontainers.image.description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
        "label:org.opencontainers.image.licenses": "MIT",
        "label:org.opencontainers.image.revision": "69a5fb424e3e532ea0f4c9da2f30830b70026130",
        "label:org.opencontainers.image.source": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.title": "router",
        "label:org.opencontainers.image.url": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.vendor": "theguild",
        "label:org.opencontainers.image.version": "pr-775",
        "source": "docker/dockerfile:1.21"
      },
      "locals": [
        {
          "name": "context"
        },
        {
          "name": "dockerfile"
        }
      ]
    },
    "environment": {
      "github_actor": "dotansimha",
      "github_actor_id": "3680083",
      "github_event_name": "pull_request",
      "github_event_payload": {
        "action": "synchronize",
        "after": "7db95f513a48f9ea73dc1d436e4888392386e13a",
        "before": "2b487b0f0d19369d70a86fbe91f4301ca9de3fff",
        "enterprise": {
          "avatar_url": "https://avatars.githubusercontent.com/b/187753?v=4",
          "created_at": "2024-07-02T08:52:28Z",
          "description": "",
          "html_url": "https://github.com/enterprises/the-guild",
          "id": 187753,
          "name": "The Guild",
          "node_id": "E_kgDOAALdaQ",
          "slug": "the-guild",
          "updated_at": "2026-02-11T08:01:14Z",
          "website_url": "https://the-guild.dev/"
        },
        "number": 775,
        "organization": {
          "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
          "description": "Schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs.",
          "events_url": "https://api.github.com/orgs/graphql-hive/events",
          "hooks_url": "https://api.github.com/orgs/graphql-hive/hooks",
          "id": 182742256,
          "issues_url": "https://api.github.com/orgs/graphql-hive/issues",
          "login": "graphql-hive",
          "members_url": "https://api.github.com/orgs/graphql-hive/members{/member}",
          "node_id": "O_kgDOCuRs8A",
          "public_members_url": "https://api.github.com/orgs/graphql-hive/public_members{/member}",
          "repos_url": "https://api.github.com/orgs/graphql-hive/repos",
          "url": "https://api.github.com/orgs/graphql-hive"
        },
        "pull_request": {
          "_links": {
            "comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/775/comments"
            },
            "commits": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/775/commits"
            },
            "html": {
              "href": "https://github.com/graphql-hive/router/pull/775"
            },
            "issue": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/775"
            },
            "review_comment": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}"
            },
            "review_comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/775/comments"
            },
            "self": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/775"
            },
            "statuses": {
              "href": "https://api.github.com/repos/graphql-hive/router/statuses/7db95f513a48f9ea73dc1d436e4888392386e13a"
            }
          },
          "active_lock_reason": null,
          "additions": 950,
          "assignee": null,
          "assignees": [],
          "author_association": "MEMBER",
          "auto_merge": null,
          "base": {
            "label": "graphql-hive:main",
            "ref": "main",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 8,
              "forks_count": 8,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 58,
              "open_issues_count": 58,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-02-19T06:59:21Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 4871,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 72,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-02-18T09:07:07Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 72,
              "watchers_count": 72,
              "web_commit_signoff_required": false
            },
            "sha": "d1772c8b8f66079c2ba594fc23dbb36427c89e47",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "body": "- [x] figure out config + shortcut\r\n- [ ] config overrides with env vars\r\n- [ ] testing\r\n- [x] stdout exporter with non-blocking writer\r\n- [x] file expoter with non-blocking writer + rolling log file \r\n- [x] filter out internal crates \r\n- [ ] figure out request logging \r\n- [ ] clear all usages of current logging setup \r\n- [ ] access logs \r\n- [ ] documentation\r\n- [ ] logging best practices in styleguide  \r\n- [ ] figure out integration with OTEL spans \r\n- [x] logs correlation based on req-id",
          "changed_files": 31,
          "closed_at": null,
          "comments": 3,
          "comments_url": "https://api.github.com/repos/graphql-hive/router/issues/775/comments",
          "commits": 5,
          "commits_url": "https://api.github.com/repos/graphql-hive/router/pulls/775/commits",
          "created_at": "2026-02-16T06:36:16Z",
          "deletions": 189,
          "diff_url": "https://github.com/graphql-hive/router/pull/775.diff",
          "draft": true,
          "head": {
            "label": "graphql-hive:logging",
            "ref": "logging",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 8,
              "forks_count": 8,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 58,
              "open_issues_count": 58,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-02-19T06:59:21Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 4871,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 72,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-02-18T09:07:07Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 72,
              "watchers_count": 72,
              "web_commit_signoff_required": false
            },
            "sha": "7db95f513a48f9ea73dc1d436e4888392386e13a",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "html_url": "https://github.com/graphql-hive/router/pull/775",
          "id": 3288610546,
          "issue_url": "https://api.github.com/repos/graphql-hive/router/issues/775",
          "labels": [],
          "locked": false,
          "maintainer_can_modify": false,
          "merge_commit_sha": "99f724c951fb09ef41ddd382aa86140fa905f66a",
          "mergeable": null,
          "mergeable_state": "unknown",
          "merged": false,
          "merged_at": null,
          "merged_by": null,
          "milestone": null,
          "node_id": "PR_kwDONSTNFM7EBDby",
          "number": 775,
          "patch_url": "https://github.com/graphql-hive/router/pull/775.patch",
          "rebaseable": null,
          "requested_reviewers": [],
          "requested_teams": [],
          "review_comment_url": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}",
          "review_comments": 5,
          "review_comments_url": "https://api.github.com/repos/graphql-hive/router/pulls/775/comments",
          "state": "open",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/7db95f513a48f9ea73dc1d436e4888392386e13a",
          "title": "feat(router): improved logging",
          "updated_at": "2026-02-19T06:59:22Z",
          "url": "https://api.github.com/repos/graphql-hive/router/pulls/775",
          "user": {
            "avatar_url": "https://avatars.githubusercontent.com/u/3680083?v=4",
            "events_url": "https://api.github.com/users/dotansimha/events{/privacy}",
            "followers_url": "https://api.github.com/users/dotansimha/followers",
            "following_url": "https://api.github.com/users/dotansimha/following{/other_user}",
            "gists_url": "https://api.github.com/users/dotansimha/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/dotansimha",
            "id": 3680083,
            "login": "dotansimha",
            "node_id": "MDQ6VXNlcjM2ODAwODM=",
            "organizations_url": "https://api.github.com/users/dotansimha/orgs",
            "received_events_url": "https://api.github.com/users/dotansimha/received_events",
            "repos_url": "https://api.github.com/users/dotansimha/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/dotansimha/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/dotansimha/subscriptions",
            "type": "User",
            "url": "https://api.github.com/users/dotansimha",
            "user_view_type": "public"
          }
        },
        "repository": {
          "allow_forking": true,
          "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
          "archived": false,
          "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
          "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
          "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
          "clone_url": "https://github.com/graphql-hive/router.git",
          "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
          "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
          "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
          "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
          "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
          "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
          "created_at": "2024-11-20T16:16:12Z",
          "custom_properties": {
            "vanta_production_branch_name": "main"
          },
          "default_branch": "main",
          "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
          "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
          "disabled": false,
          "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
          "events_url": "https://api.github.com/repos/graphql-hive/router/events",
          "fork": false,
          "forks": 8,
          "forks_count": 8,
          "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
          "full_name": "graphql-hive/router",
          "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
          "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
          "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
          "git_url": "git://github.com/graphql-hive/router.git",
          "has_discussions": false,
          "has_downloads": true,
          "has_issues": true,
          "has_pages": false,
          "has_projects": false,
          "has_pull_requests": true,
          "has_wiki": false,
          "homepage": "https://the-guild.dev/graphql/hive/docs/router",
          "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
          "html_url": "https://github.com/graphql-hive/router",
          "id": 891604244,
          "is_template": false,
          "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
          "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
          "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
          "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
          "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
          "language": "Rust",
          "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
          "license": {
            "key": "mit",
            "name": "MIT License",
            "node_id": "MDc6TGljZW5zZTEz",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit"
          },
          "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
          "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
          "mirror_url": null,
          "name": "router",
          "node_id": "R_kgDONSTNFA",
          "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
          "open_issues": 58,
          "open_issues_count": 58,
          "owner": {
            "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
            "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
            "followers_url": "https://api.github.com/users/graphql-hive/followers",
            "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
            "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/graphql-hive",
            "id": 182742256,
            "login": "graphql-hive",
            "node_id": "O_kgDOCuRs8A",
            "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
            "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
            "repos_url": "https://api.github.com/users/graphql-hive/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
            "type": "Organization",
            "url": "https://api.github.com/users/graphql-hive",
            "user_view_type": "public"
          },
          "private": false,
          "pull_request_creation_policy": "all",
          "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
          "pushed_at": "2026-02-19T06:59:21Z",
          "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
          "size": 4871,
          "ssh_url": "git@github.com:graphql-hive/router.git",
          "stargazers_count": 72,
          "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
          "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
          "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
          "svn_url": "https://github.com/graphql-hive/router",
          "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
          "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
          "topics": [
            "apollo-federation",
            "federation",
            "federation-gateway",
            "graphql",
            "graphql-federation",
            "router"
          ],
          "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
          "updated_at": "2026-02-18T09:07:07Z",
          "url": "https://api.github.com/repos/graphql-hive/router",
          "visibility": "public",
          "watchers": 72,
          "watchers_count": 72,
          "web_commit_signoff_required": false
        },
        "sender": {
          "avatar_url": "https://avatars.githubusercontent.com/u/3680083?v=4",
          "events_url": "https://api.github.com/users/dotansimha/events{/privacy}",
          "followers_url": "https://api.github.com/users/dotansimha/followers",
          "following_url": "https://api.github.com/users/dotansimha/following{/other_user}",
          "gists_url": "https://api.github.com/users/dotansimha/gists{/gist_id}",
          "gravatar_id": "",
          "html_url": "https://github.com/dotansimha",
          "id": 3680083,
          "login": "dotansimha",
          "node_id": "MDQ6VXNlcjM2ODAwODM=",
          "organizations_url": "https://api.github.com/users/dotansimha/orgs",
          "received_events_url": "https://api.github.com/users/dotansimha/received_events",
          "repos_url": "https://api.github.com/users/dotansimha/repos",
          "site_admin": false,
          "starred_url": "https://api.github.com/users/dotansimha/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/dotansimha/subscriptions",
          "type": "User",
          "url": "https://api.github.com/users/dotansimha",
          "user_view_type": "public"
        }
      },
      "github_job": "docker",
      "github_ref": "refs/pull/775/merge",
      "github_ref_name": "775/merge",
      "github_ref_protected": "false",
      "github_ref_type": "branch",
      "github_repository": "graphql-hive/router",
      "github_repository_id": "891604244",
      "github_repository_owner": "graphql-hive",
      "github_repository_owner_id": "182742256",
      "github_run_attempt": "1",
      "github_run_id": "22171850416",
      "github_run_number": "1512",
      "github_runner_arch": "X64",
      "github_runner_environment": "github-hosted",
      "github_runner_image_os": "ubuntu24",
      "github_runner_image_version": "20260209.23.1",
      "github_runner_name": "GitHub Actions 1000568563",
      "github_runner_os": "Linux",
      "github_runner_tracking_id": "github_cfb97cbb-f877-4b8a-ac71-bb9b6b97ff82",
      "github_server_url": "https://github.com",
      "github_triggering_actor": "dotansimha",
      "github_workflow": "build-router",
      "github_workflow_ref": "graphql-hive/router/.github/workflows/build-router.yaml@refs/pull/775/merge",
      "github_workflow_sha": "69a5fb424e3e532ea0f4c9da2f30830b70026130",
      "platform": "linux/amd64"
    }
  }
},
"buildx.build.provenance/linux/arm64": {
  "builder": {
    "id": "https://github.com/graphql-hive/router/actions/runs/22171850416/attempts/1"
  },
  "buildType": "https://mobyproject.org/buildkit@v1",
  "materials": [
    {
      "uri": "pkg:docker/docker/dockerfile@1.21",
      "digest": {
        "sha256": "27f9262d43452075f3c410287a2c43f5ef1bf7ec2bb06e8c9eeb1b8d453087bc"
      }
    },
    {
      "uri": "pkg:docker/gcr.io/distroless/cc-debian12@latest?platform=linux%2Farm64",
      "digest": {
        "sha256": "329e54034ce498f9c6b345044e8f530c6691f99e94a92446f68c0adf9baa8464"
      }
    }
  ],
  "invocation": {
    "configSource": {
      "entryPoint": "router.Dockerfile"
    },
    "parameters": {
      "frontend": "gateway.v0",
      "args": {
        "cmdline": "docker/dockerfile:1.21",
        "label:org.opencontainers.image.created": "2026-02-19T07:10:36.758Z",
        "label:org.opencontainers.image.description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
        "label:org.opencontainers.image.licenses": "MIT",
        "label:org.opencontainers.image.revision": "69a5fb424e3e532ea0f4c9da2f30830b70026130",
        "label:org.opencontainers.image.source": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.title": "router",
        "label:org.opencontainers.image.url": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.vendor": "theguild",
        "label:org.opencontainers.image.version": "pr-775",
        "source": "docker/dockerfile:1.21"
      },
      "locals": [
        {
          "name": "context"
        },
        {
          "name": "dockerfile"
        }
      ]
    },
    "environment": {
      "github_actor": "dotansimha",
      "github_actor_id": "3680083",
      "github_event_name": "pull_request",
      "github_event_payload": {
        "action": "synchronize",
        "after": "7db95f513a48f9ea73dc1d436e4888392386e13a",
        "before": "2b487b0f0d19369d70a86fbe91f4301ca9de3fff",
        "enterprise": {
          "avatar_url": "https://avatars.githubusercontent.com/b/187753?v=4",
          "created_at": "2024-07-02T08:52:28Z",
          "description": "",
          "html_url": "https://github.com/enterprises/the-guild",
          "id": 187753,
          "name": "The Guild",
          "node_id": "E_kgDOAALdaQ",
          "slug": "the-guild",
          "updated_at": "2026-02-11T08:01:14Z",
          "website_url": "https://the-guild.dev/"
        },
        "number": 775,
        "organization": {
          "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
          "description": "Schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs.",
          "events_url": "https://api.github.com/orgs/graphql-hive/events",
          "hooks_url": "https://api.github.com/orgs/graphql-hive/hooks",
          "id": 182742256,
          "issues_url": "https://api.github.com/orgs/graphql-hive/issues",
          "login": "graphql-hive",
          "members_url": "https://api.github.com/orgs/graphql-hive/members{/member}",
          "node_id": "O_kgDOCuRs8A",
          "public_members_url": "https://api.github.com/orgs/graphql-hive/public_members{/member}",
          "repos_url": "https://api.github.com/orgs/graphql-hive/repos",
          "url": "https://api.github.com/orgs/graphql-hive"
        },
        "pull_request": {
          "_links": {
            "comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/775/comments"
            },
            "commits": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/775/commits"
            },
            "html": {
              "href": "https://github.com/graphql-hive/router/pull/775"
            },
            "issue": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/775"
            },
            "review_comment": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}"
            },
            "review_comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/775/comments"
            },
            "self": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/775"
            },
            "statuses": {
              "href": "https://api.github.com/repos/graphql-hive/router/statuses/7db95f513a48f9ea73dc1d436e4888392386e13a"
            }
          },
          "active_lock_reason": null,
          "additions": 950,
          "assignee": null,
          "assignees": [],
          "author_association": "MEMBER",
          "auto_merge": null,
          "base": {
            "label": "graphql-hive:main",
            "ref": "main",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 8,
              "forks_count": 8,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 58,
              "open_issues_count": 58,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-02-19T06:59:21Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 4871,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 72,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-02-18T09:07:07Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 72,
              "watchers_count": 72,
              "web_commit_signoff_required": false
            },
            "sha": "d1772c8b8f66079c2ba594fc23dbb36427c89e47",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "body": "- [x] figure out config + shortcut\r\n- [ ] config overrides with env vars\r\n- [ ] testing\r\n- [x] stdout exporter with non-blocking writer\r\n- [x] file expoter with non-blocking writer + rolling log file \r\n- [x] filter out internal crates \r\n- [ ] figure out request logging \r\n- [ ] clear all usages of current logging setup \r\n- [ ] access logs \r\n- [ ] documentation\r\n- [ ] logging best practices in styleguide  \r\n- [ ] figure out integration with OTEL spans \r\n- [x] logs correlation based on req-id",
          "changed_files": 31,
          "closed_at": null,
          "comments": 3,
          "comments_url": "https://api.github.com/repos/graphql-hive/router/issues/775/comments",
          "commits": 5,
          "commits_url": "https://api.github.com/repos/graphql-hive/router/pulls/775/commits",
          "created_at": "2026-02-16T06:36:16Z",
          "deletions": 189,
          "diff_url": "https://github.com/graphql-hive/router/pull/775.diff",
          "draft": true,
          "head": {
            "label": "graphql-hive:logging",
            "ref": "logging",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 8,
              "forks_count": 8,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 58,
              "open_issues_count": 58,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-02-19T06:59:21Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 4871,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 72,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-02-18T09:07:07Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 72,
              "watchers_count": 72,
              "web_commit_signoff_required": false
            },
            "sha": "7db95f513a48f9ea73dc1d436e4888392386e13a",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "html_url": "https://github.com/graphql-hive/router/pull/775",
          "id": 3288610546,
          "issue_url": "https://api.github.com/repos/graphql-hive/router/issues/775",
          "labels": [],
          "locked": false,
          "maintainer_can_modify": false,
          "merge_commit_sha": "99f724c951fb09ef41ddd382aa86140fa905f66a",
          "mergeable": null,
          "mergeable_state": "unknown",
          "merged": false,
          "merged_at": null,
          "merged_by": null,
          "milestone": null,
          "node_id": "PR_kwDONSTNFM7EBDby",
          "number": 775,
          "patch_url": "https://github.com/graphql-hive/router/pull/775.patch",
          "rebaseable": null,
          "requested_reviewers": [],
          "requested_teams": [],
          "review_comment_url": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}",
          "review_comments": 5,
          "review_comments_url": "https://api.github.com/repos/graphql-hive/router/pulls/775/comments",
          "state": "open",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/7db95f513a48f9ea73dc1d436e4888392386e13a",
          "title": "feat(router): improved logging",
          "updated_at": "2026-02-19T06:59:22Z",
          "url": "https://api.github.com/repos/graphql-hive/router/pulls/775",
          "user": {
            "avatar_url": "https://avatars.githubusercontent.com/u/3680083?v=4",
            "events_url": "https://api.github.com/users/dotansimha/events{/privacy}",
            "followers_url": "https://api.github.com/users/dotansimha/followers",
            "following_url": "https://api.github.com/users/dotansimha/following{/other_user}",
            "gists_url": "https://api.github.com/users/dotansimha/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/dotansimha",
            "id": 3680083,
            "login": "dotansimha",
            "node_id": "MDQ6VXNlcjM2ODAwODM=",
            "organizations_url": "https://api.github.com/users/dotansimha/orgs",
            "received_events_url": "https://api.github.com/users/dotansimha/received_events",
            "repos_url": "https://api.github.com/users/dotansimha/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/dotansimha/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/dotansimha/subscriptions",
            "type": "User",
            "url": "https://api.github.com/users/dotansimha",
            "user_view_type": "public"
          }
        },
        "repository": {
          "allow_forking": true,
          "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
          "archived": false,
          "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
          "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
          "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
          "clone_url": "https://github.com/graphql-hive/router.git",
          "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
          "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
          "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
          "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
          "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
          "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
          "created_at": "2024-11-20T16:16:12Z",
          "custom_properties": {
            "vanta_production_branch_name": "main"
          },
          "default_branch": "main",
          "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
          "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
          "disabled": false,
          "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
          "events_url": "https://api.github.com/repos/graphql-hive/router/events",
          "fork": false,
          "forks": 8,
          "forks_count": 8,
          "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
          "full_name": "graphql-hive/router",
          "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
          "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
          "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
          "git_url": "git://github.com/graphql-hive/router.git",
          "has_discussions": false,
          "has_downloads": true,
          "has_issues": true,
          "has_pages": false,
          "has_projects": false,
          "has_pull_requests": true,
          "has_wiki": false,
          "homepage": "https://the-guild.dev/graphql/hive/docs/router",
          "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
          "html_url": "https://github.com/graphql-hive/router",
          "id": 891604244,
          "is_template": false,
          "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
          "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
          "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
          "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
          "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
          "language": "Rust",
          "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
          "license": {
            "key": "mit",
            "name": "MIT License",
            "node_id": "MDc6TGljZW5zZTEz",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit"
          },
          "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
          "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
          "mirror_url": null,
          "name": "router",
          "node_id": "R_kgDONSTNFA",
          "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
          "open_issues": 58,
          "open_issues_count": 58,
          "owner": {
            "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
            "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
            "followers_url": "https://api.github.com/users/graphql-hive/followers",
            "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
            "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/graphql-hive",
            "id": 182742256,
            "login": "graphql-hive",
            "node_id": "O_kgDOCuRs8A",
            "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
            "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
            "repos_url": "https://api.github.com/users/graphql-hive/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
            "type": "Organization",
            "url": "https://api.github.com/users/graphql-hive",
            "user_view_type": "public"
          },
          "private": false,
          "pull_request_creation_policy": "all",
          "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
          "pushed_at": "2026-02-19T06:59:21Z",
          "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
          "size": 4871,
          "ssh_url": "git@github.com:graphql-hive/router.git",
          "stargazers_count": 72,
          "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
          "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
          "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
          "svn_url": "https://github.com/graphql-hive/router",
          "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
          "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
          "topics": [
            "apollo-federation",
            "federation",
            "federation-gateway",
            "graphql",
            "graphql-federation",
            "router"
          ],
          "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
          "updated_at": "2026-02-18T09:07:07Z",
          "url": "https://api.github.com/repos/graphql-hive/router",
          "visibility": "public",
          "watchers": 72,
          "watchers_count": 72,
          "web_commit_signoff_required": false
        },
        "sender": {
          "avatar_url": "https://avatars.githubusercontent.com/u/3680083?v=4",
          "events_url": "https://api.github.com/users/dotansimha/events{/privacy}",
          "followers_url": "https://api.github.com/users/dotansimha/followers",
          "following_url": "https://api.github.com/users/dotansimha/following{/other_user}",
          "gists_url": "https://api.github.com/users/dotansimha/gists{/gist_id}",
          "gravatar_id": "",
          "html_url": "https://github.com/dotansimha",
          "id": 3680083,
          "login": "dotansimha",
          "node_id": "MDQ6VXNlcjM2ODAwODM=",
          "organizations_url": "https://api.github.com/users/dotansimha/orgs",
          "received_events_url": "https://api.github.com/users/dotansimha/received_events",
          "repos_url": "https://api.github.com/users/dotansimha/repos",
          "site_admin": false,
          "starred_url": "https://api.github.com/users/dotansimha/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/dotansimha/subscriptions",
          "type": "User",
          "url": "https://api.github.com/users/dotansimha",
          "user_view_type": "public"
        }
      },
      "github_job": "docker",
      "github_ref": "refs/pull/775/merge",
      "github_ref_name": "775/merge",
      "github_ref_protected": "false",
      "github_ref_type": "branch",
      "github_repository": "graphql-hive/router",
      "github_repository_id": "891604244",
      "github_repository_owner": "graphql-hive",
      "github_repository_owner_id": "182742256",
      "github_run_attempt": "1",
      "github_run_id": "22171850416",
      "github_run_number": "1512",
      "github_runner_arch": "X64",
      "github_runner_environment": "github-hosted",
      "github_runner_image_os": "ubuntu24",
      "github_runner_image_version": "20260209.23.1",
      "github_runner_name": "GitHub Actions 1000568563",
      "github_runner_os": "Linux",
      "github_runner_tracking_id": "github_cfb97cbb-f877-4b8a-ac71-bb9b6b97ff82",
      "github_server_url": "https://github.com",
      "github_triggering_actor": "dotansimha",
      "github_workflow": "build-router",
      "github_workflow_ref": "graphql-hive/router/.github/workflows/build-router.yaml@refs/pull/775/merge",
      "github_workflow_sha": "69a5fb424e3e532ea0f4c9da2f30830b70026130",
      "platform": "linux/amd64"
    }
  }
},
"buildx.build.ref": "builder-3a4da83a-d532-4272-9a17-2a55692d1639/builder-3a4da83a-d532-4272-9a17-2a55692d16390/uepifuypk4alfipo5rtk93h3b",
"containerimage.descriptor": {
  "mediaType": "application/vnd.oci.image.index.v1+json",
  "digest": "sha256:3f4986ac8e1016c85483329fce5bcb15b051e294bda15854f8e45c484bccc9d8",
  "size": 1609
},
"containerimage.digest": "sha256:3f4986ac8e1016c85483329fce5bcb15b051e294bda15854f8e45c484bccc9d8",
"image.name": "ghcr.io/graphql-hive/router:pr-775,ghcr.io/graphql-hive/router:sha-69a5fb4"
}

@dotansimha dotansimha force-pushed the logging branch 2 times, most recently from a067902 to dc1ca5e Compare February 18, 2026 13:57
wip

ok

 ok

ok

getting there

ok

ok

correlation id

ok

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant