Skip to content

feat(seer-infra-telemetry): Implement v1 of org integration for GCP MCP#119774

Draft
shashjar wants to merge 2 commits into
masterfrom
shashjar/gcp-mcp-org-integration
Draft

feat(seer-infra-telemetry): Implement v1 of org integration for GCP MCP#119774
shashjar wants to merge 2 commits into
masterfrom
shashjar/gcp-mcp-org-integration

Conversation

@shashjar

Copy link
Copy Markdown
Member

WIP

@github-actions github-actions Bot added Scope: Frontend Automatically applied to PRs that change frontend components Scope: Backend Automatically applied to PRs that change backend components labels Jul 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚨 Warning: This pull request contains Frontend and Backend changes!

It's discouraged to make changes to Sentry's Frontend and Backend in a single pull request. The Frontend and Backend are not atomically deployed. If the changes are interdependent of each other, they must be separated into two pull requests and be made forward or backwards compatible, such that the Backend or Frontend can be safely deployed independently.

Have questions? Please ask in the #discuss-dev-infra channel.

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Backend Test Failures

Failures on 8ecffe1 in this run:

tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_skips_identity_when_encryption_failslog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1632: in test_skips_identity_when_encryption_fails
    assert get_monitoring_provider_connections(self.organization, self.user.id) == []
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_gcp_skips_identity_missing_access_tokenlog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1739: in test_gcp_skips_identity_missing_access_token
    assert get_monitoring_provider_connections(self.organization, self.user.id) == []
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_degrades_when_identity_service_errorslog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1656: in test_degrades_when_identity_service_errors
    assert get_monitoring_provider_connections(self.organization, self.user.id) == []
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetAvailableMonitoringProviders::test_different_user_same_orglog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1829: in test_different_user_same_org
    result = get_available_monitoring_providers(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:204: in get_available_monitoring_providers
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetAvailableMonitoringProviders::test_includes_visible_rowlog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1814: in test_includes_visible_row
    result = get_available_monitoring_providers(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:204: in get_available_monitoring_providers
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_returns_empty_when_no_identitieslog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1497: in test_returns_empty_when_no_identities
    assert get_monitoring_provider_connections(self.organization, self.user.id) == []
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/endpoints/test_seer_rpc.py::TestGetMonitoringProviderConnections::test_returns_connectionslog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/endpoints/test_seer_rpc.py:888: in test_returns_connections
    result = get_monitoring_provider_connections(
src/sentry/seer/endpoints/seer_rpc.py:865: in get_monitoring_provider_connections
    connections=fetch_monitoring_provider_connections(organization, user_id)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetAvailableMonitoringProviders::test_same_user_different_orglog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1843: in test_same_user_different_org
    result = get_available_monitoring_providers(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:204: in get_available_monitoring_providers
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_returns_connectionlog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1518: in test_returns_connection
    result = get_monitoring_provider_connections(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_cross_org_isolationlog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1570: in test_cross_org_isolation
    result_org1 = get_monitoring_provider_connections(self.organization, self.user.id)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_skips_identity_missing_sitelog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1605: in test_skips_identity_missing_site
    assert get_monitoring_provider_connections(self.organization, self.user.id) == []
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetAvailableMonitoringProviders::test_returns_available_providerslog
[gw1] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1787: in test_returns_available_providers
    result = get_available_monitoring_providers(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:204: in get_available_monitoring_providers
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_ignores_non_monitoring_provider_identitieslog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1616: in test_ignores_non_monitoring_provider_identities
    assert get_monitoring_provider_connections(self.organization, self.user.id) == []
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_gcp_token_encrypted_oncelog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1757: in test_gcp_token_encrypted_once
    result = get_monitoring_provider_connections(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetAvailableMonitoringProviders::test_excludes_dismissed_providerlog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1801: in test_excludes_dismissed_provider
    result = get_available_monitoring_providers(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:204: in get_available_monitoring_providers
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_returns_gcp_connectionslog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1674: in test_returns_gcp_connections
    result = get_monitoring_provider_connections(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa
tests/sentry/seer/agent/test_agent_client.py::TestGetMonitoringProviderConnections::test_returns_multiple_connectionslog
[gw0] linux -- Python 3.13.1 /home/runner/work/sentry/sentry/.venv/bin/python3
src/sentry/identity/manager.py:24: in get
    cls = self.__values[key]
          ^^^^^^^^^^^^^^^^^^
E   KeyError: <IntegrationProviderSlug.GCP_SA: 'gcp_sa'>

During handling of the above exception, another exception occurred:
tests/sentry/seer/agent/test_agent_client.py:1547: in test_returns_multiple_connections
    result = get_monitoring_provider_connections(self.organization, self.user.id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/seer/agent/client.py:126: in get_monitoring_provider_connections
    provider = identity_manager.get(provider_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/sentry/identity/manager.py:26: in get
    raise NotRegistered(key)
E   sentry.exceptions.NotRegistered: gcp_sa

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

Labels

Scope: Backend Automatically applied to PRs that change backend components Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant