Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Observability in the SDKs #352

Open
6 of 16 tasks
rhamzeh opened this issue Apr 30, 2024 · 0 comments
Open
6 of 16 tasks

Observability in the SDKs #352

rhamzeh opened this issue Apr 30, 2024 · 0 comments
Assignees
Labels
dotnet-sdk Affects the C#/DotNet SDK enhancement New feature or request epic go-sdk Affects the Go SDK java-sdk Affects the Java/Kotlin SDK js-sdk Affects the JavaScript SDK python-sdk Affects the Python SDK

Comments

@rhamzeh
Copy link
Member

rhamzeh commented Apr 30, 2024

Checklist

Describe the problem you'd like to have solved

As a consumer of the SDK, I would like to hook it to my dashboards to get data on several metrics, as well being able to configure proper logging and tracing

Describe the ideal solution

For each SDK, users should be able to set up and connect to their infra

  • Phase 1: Metrics
  • Phase 2: Logging
  • Phase 3: Tracing
Metrics:
Logging:
  • Write logs, possibly enriched by metadata from the dev
  • Write authorization model logs, possibly enriched by metadata from the dev
  • Check logs, with the responses
  • ListObjects logs with response length
  • ListUsers logs with response length
  • Other endpoints

Q: Should we have an option to log the full response? The headers? Full response will be a problem in list objects/users

  • JS: TODO
  • Go: TODO
  • .NET: TODO
  • Python: TODO
  • Java: TODO
Tracing:
  • Full trace of a request

  • Propagate the trace ID both from their app and to the OpenFGA server so that they can follow a request from their app to FGA

  • JS: TODO

  • Go: TODO

  • .NET: TODO

  • Python: TODO

  • Java: TODO

Documentation

  • Documentation in each SDK on how to configure logging, metrics and tracing
  • Documentation in our docs on setting up tracing and connecting it to Prometheus and Grafana

Configuration

For each, SDK we need to allow the configuration of tracing, metrics and logging

For example, in the JS SDK, we may add: (note - config structure may change), based on the server config

Implementation

We will be using OpenTelemetry, e.g. open-telemetry/opentelemetry-js (for JS) or the appropriate SDK for each language: Language APIs & SDKs

Alternatives and current workarounds

No response

References

No response

Additional context

Roadmap Item: openfga/roadmap#41

@rhamzeh rhamzeh added enhancement New feature or request go-sdk Affects the Go SDK dotnet-sdk Affects the C#/DotNet SDK js-sdk Affects the JavaScript SDK python-sdk Affects the Python SDK java-sdk Affects the Java/Kotlin SDK epic labels Apr 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dotnet-sdk Affects the C#/DotNet SDK enhancement New feature or request epic go-sdk Affects the Go SDK java-sdk Affects the Java/Kotlin SDK js-sdk Affects the JavaScript SDK python-sdk Affects the Python SDK
Projects
Status: In progress
Development

No branches or pull requests

2 participants