Work & Collaboration
GitHub
Go to Connections
Click Connect next to GitHub
Install the Struct GitHub App
Select which repositories to enable
- Cross-reference errors with recent commits and deployments
- Run deployment audits from GitHub Deployments (or a webhook if your pipeline does not create them)
- Search your codebase for relevant code paths
- Create branches and pull requests when a fix is approved
Slack
Connect Slack to receive investigation reports and trigger on-demand investigations.Go to Connections
Click Connect next to Slack
Authorize the Struct app in your workspace
Invite @Struct to channels where alerts are posted
Triggering Investigations
Mention Struct in any channel where it’s been invited:Auto-Investigation
Struct can also automatically investigate messages in your configured investigation channels. Configure keyword filters to control which alerts trigger investigations, or let AI classification decide. See Auto-Investigations for setup details.Linear
Connect Linear to trigger investigations from issues and receive updates as comments.Go to Connections
Click Connect next to Linear
Authorize and select teams to monitor
Auto-Investigation
Enable auto-investigation to have Struct automatically investigate new issues created in your default team. Configure keyword filters to focus on specific issue types. See Auto-Investigations for setup details.Asana
Connect Asana to trigger investigations from tasks.Go to Connections
Click Connect next to Asana
Authorize and select projects to monitor
Observability Platforms
Struct queries your observability platforms during investigations to pull error details, metrics, traces, and alert context. The more sources connected, the richer the investigation.Sentry
Go to Connections
Click Connect next to Sentry
Follow the instructions to complete setup
What Struct uses from Sentry
- Stack traces — Pinpoints the exact code path that threw the error
- Breadcrumbs — Reconstructs the sequence of events leading to the error
- Error frequency — Determines if this is a new issue or a recurring pattern
- Affected users — Assesses impact scope
Example
When a Sentry alert fires, Struct automatically:- Pulls the full stack trace and breadcrumbs
- Cross-references the failing code with recent commits
- Checks if this error pattern has appeared in previous investigations
- Delivers a root cause report to Slack
Datadog
Go to Connections
Click Connect next to Datadog
Follow the instructions to complete setup
Required application key scopes
Datadog enforces read permissions on the application key’s role, not the API key. The role attached to the application key you provide must grant all of the following scopes, or Struct will receive403 Forbidden from the corresponding endpoints:
What Struct uses from Datadog
- Metrics — CPU, memory, latency, error rates, and custom metrics
- APM traces — Distributed traces across services; fetch a full trace by trace ID to inspect span timing and pinpoint the slow or failing service
- Monitors — Alert context and monitor history
- Events — Deployment events, configuration changes
Grafana
Go to Connections
Click Connect next to Grafana
Follow the instructions to complete setup
What Struct uses from Grafana
- Dashboard data — Queries panels for relevant metrics
- Alert rules — Understands what thresholds triggered
- Annotations — Correlates deployments and incidents with metric changes
Prometheus
Go to Connections
Click Connect next to Prometheus
Follow the instructions to complete setup
What Struct uses from Prometheus
- Metrics — Queries PromQL-compatible metrics during investigations
- Alerting rules — Reads active and pending alerts for context
- Time-series data — Analyzes trends around the time of the incident
Loki
Go to Connections
Click Connect next to Loki
Follow the instructions to complete setup
What Struct uses from Loki
- Log streams — Queries logs by labels, service, and time range
- Log context — Pulls surrounding log lines for errors
Example query Struct might run
SumoLogic
Go to Connections
Click Connect next to SumoLogic
Follow the instructions to complete setup
What Struct uses from SumoLogic
- Log search — Runs targeted searches across your log data
- Analytics — Aggregates and patterns from log analytics
Render
Go to Connections
Click Connect next to Render
Follow the instructions to complete setup
What Struct uses from Render
- Service logs — Pulls application logs from your Render services
- Deploy events — Correlates errors with recent deployments
Snowflake
Struct connects to Snowflake with key-pair authentication: a fresh RSA key pair is generated for each connection, you set the public key on a dedicated read-only service user, and Struct signs a short-lived JWT per request. There is no password or token to rotate or renew, and no network policy is required.Go to Connections and click Connect next to Snowflake
Choose a service user name (default: STRUCT_READER)
Run the setup command
ACCOUNTADMIN). It creates the service user (if it doesn’t exist), sets the generated public key on it, and grants a read-only role.Enter your account identifier and click Connect
app.snowflake.com/<org>/<account>/…, join the two path segments with a dash (e.g. app.snowflake.com/mkzwlrt/qx41832 → mkzwlrt-qx41832).What Struct uses from Snowflake
- Telemetry (event tables) — Logs, traces, and metrics emitted by stored procedures, UDFs, Snowpark code, tasks, and dynamic tables
- Query history — Failed loads, pipeline errors, and slow queries from the last 7 days, with error codes and timing breakdowns
- Read-only SQL — Answers data questions (counts, lookups, aggregations) against tables you’ve granted access to
Access is read-only
The setup command grants Struct read access only: theSNOWFLAKE.EVENTS_VIEWER application role for telemetry, USAGE on one warehouse to run queries, and SELECT across your databases. Struct can never write to your account.
The database grants are applied by a loop over your current standard databases (shared databases and Native Apps are skipped). FUTURE grants cover new tables, views, and schemas created inside those databases automatically — but if you create a brand-new database later, re-run the EXECUTE IMMEDIATE block from the setup command to include it (Snowflake has no account-wide grant).
To revoke access at any time, run:
IP allowlisting (optional)
You can restrict where the Struct service user is allowed to connect from with a Snowflake network policy:Cloud Log Providers
Struct queries your cloud logs in real time during investigations—pulling relevant log entries, filtering by time range, and correlating log patterns with errors and alerts.AWS CloudWatch
Go to Connections
Click Connect next to AWS CloudWatch
Follow the instructions to complete setup
What Struct queries
- Log groups — Application and service logs
- Log streams — Filtered by time range and keywords
- CloudWatch Insights — Structured queries across log groups
Example
During an investigation into a Lambda timeout, Struct might query:Azure Monitor
Go to Connections
Click Connect next to Azure Monitor
Follow the instructions to complete setup
What Struct queries
- Log Analytics workspaces — Application logs, custom logs, diagnostic logs
- KQL queries — Structured queries across Azure log data
- Resource logs — Logs from Azure services (App Service, Functions, AKS, etc.)
Example
Investigating a spike in Azure App Service errors, Struct might run:Google Cloud Logging
Go to Connections
Click Connect next to Google Cloud Logging
Follow the instructions to complete setup
What Struct queries
- Cloud Logging entries — Application logs, request logs, system logs
- Log-based queries — Filtered by resource, severity, and time
- GKE and Cloud Run logs — Container and serverless application logs
Example
Investigating a Cloud Run service crash, Struct might query:How Struct Uses Cloud Logs
During every investigation, Struct:- Identifies relevant log sources based on the alert and affected services
- Builds targeted queries to pull error logs, warnings, and contextual entries
- Correlates log patterns with metrics, traces, and code changes
- Highlights key log lines in the investigation report with timestamps and context
Container & Orchestration
Struct can query your Kubernetes clusters directly to pull pod logs, events, and resource status during investigations.Kubernetes
Go to Connections
Click Connect next to Kubernetes
Choose ServiceAccount Token (recommended) or kubeconfig YAML
Follow the setup instructions below
What Struct uses from Kubernetes
- Pod logs — Pulls application logs directly from pods
- Events — Surfaces Kubernetes events (restarts, scheduling issues, OOM kills)
- Namespace resources — Lists pods and their status