# Graphsignal: Observability for AI Stack
[![License](http://img.shields.io/github/license/graphsignal/graphsignal-python)](https://github.com/graphsignal/graphsignal-python/blob/main/LICENSE)
[![Version](https://img.shields.io/github/v/tag/graphsignal/graphsignal-python?label=version)](https://github.com/graphsignal/graphsignal-python)
Graphsignal is an observability platform for AI agents and LLM-powered applications. It helps developers ensure AI applications run as expected and users have the best experience. With Graphsignal, developers can:
* Trace generations, runs, and sessions with full AI context.
* Score any user interactions and application execution.
* See latency breakdowns and distributions.
* Analyze model API costs for deployments, models, or users.
* Get notified about errors and anomalies.
* Monitor API, compute, and GPU utilization.
[![Dashboards](https://graphsignal.com/external/screencast-dashboards.gif)](https://graphsignal.com/)
Learn more at [graphsignal.com](https://graphsignal.com).
## Install
Install Graphsignal library.
```bash
pip install --upgrade graphsignal
```
## Configure
Configure Graphsignal tracer by specifying your API key directly or via `GRAPHSIGNAL_API_KEY` environment variable.
```python
import graphsignal
graphsignal.configure(api_key='my-api-key', deployment='my-app')
```
To get an API key, sign up for a free account at [graphsignal.com](https://graphsignal.com). The key can then be found in your account's [Settings / API Keys](https://app.graphsignal.com/settings/api-keys) page.
Alternatively, you can add Graphsignal tracer at command line, when running your module or script. Environment variables `GRAPHSIGNAL_API_KEY` and `GRAPHSIGNAL_DEPLOYMENT` must be set.
```bash
python -m graphsignal <script>
```
```bash
python -m graphsignal -m <module>
```
## Integrate
Graphsignal **auto-instruments** and traces libraries and frameworks, such as [OpenAI](https://graphsignal.com/docs/integrations/openai/) and [LangChain](https://graphsignal.com/docs/integrations/langchain/). Traces, errors, and data, such as prompts and completions, are automatically recorded and available for analysis at [app.graphsignal.com](https://app.graphsignal.com/).
Refer to the guides below for detailed information on:
* [Session Tracking](https://graphsignal.com/docs/guides/session-tracking/)
* [User Tracking](https://graphsignal.com/docs/guides/user-tracking/)
* [Manual Tracing](https://graphsignal.com/docs/guides/manual-tracing/)
* [Scores and Feedback](https://graphsignal.com/docs/guides/scores-and-feedback/)
* [Cost and Usage Monitoring](https://graphsignal.com/docs/guides/cost-and-usage-monitoring/)
See [API reference](https://graphsignal.com/docs/reference/python-api/) for full documentation.
Some integration examples are available in [examples](https://github.com/graphsignal/examples) repo.
## Analyze
[Log in](https://app.graphsignal.com/) to Graphsignal to monitor and analyze your application and monitor for issues.
## Overhead
Graphsignal tracer is very lightweight. The overhead per trace is measured to be less than 100 microseconds.
## Security and Privacy
Graphsignal tracer can only open outbound connections to `api.graphsignal.com` and send data, no inbound connections or commands are possible.
Payloads, such as prompts and completions, are recorded by default in case of automatic tracing. To disable, set `record_payloads=False` in `graphsignal.configure`.
## Troubleshooting
To enable debug logging, add `debug_mode=True` to `configure()`. If the debug log doesn't give you any hints on how to fix a problem, please report it to our support team via your account.
In case of connection issues, please make sure outgoing connections to `https://api.graphsignal.com` are allowed.
Raw data
{
"_id": null,
"home_page": "https://graphsignal.com",
"name": "graphsignal",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8.1",
"maintainer_email": null,
"keywords": "LLM observability, LLM analytics, Agent observability, Agent analytics",
"author": "Graphsignal, Inc.",
"author_email": "devops@graphsignal.com",
"download_url": "https://files.pythonhosted.org/packages/43/27/6c090ca87f09834d21cae7b70b2897c8634445f21b1db46027bb8d7ff7f7/graphsignal-0.15.5.tar.gz",
"platform": null,
"description": "# Graphsignal: Observability for AI Stack\n\n[![License](http://img.shields.io/github/license/graphsignal/graphsignal-python)](https://github.com/graphsignal/graphsignal-python/blob/main/LICENSE)\n[![Version](https://img.shields.io/github/v/tag/graphsignal/graphsignal-python?label=version)](https://github.com/graphsignal/graphsignal-python)\n\n\nGraphsignal is an observability platform for AI agents and LLM-powered applications. It helps developers ensure AI applications run as expected and users have the best experience. With Graphsignal, developers can:\n\n* Trace generations, runs, and sessions with full AI context.\n* Score any user interactions and application execution.\n* See latency breakdowns and distributions.\n* Analyze model API costs for deployments, models, or users.\n* Get notified about errors and anomalies.\n* Monitor API, compute, and GPU utilization.\n\n[![Dashboards](https://graphsignal.com/external/screencast-dashboards.gif)](https://graphsignal.com/)\n\nLearn more at [graphsignal.com](https://graphsignal.com).\n\n\n## Install\n\nInstall Graphsignal library.\n\n```bash\npip install --upgrade graphsignal\n```\n\n\n## Configure\n\nConfigure Graphsignal tracer by specifying your API key directly or via `GRAPHSIGNAL_API_KEY` environment variable.\n\n```python\nimport graphsignal\n\ngraphsignal.configure(api_key='my-api-key', deployment='my-app')\n```\n\nTo get an API key, sign up for a free account at [graphsignal.com](https://graphsignal.com). The key can then be found in your account's [Settings / API Keys](https://app.graphsignal.com/settings/api-keys) page.\n\nAlternatively, you can add Graphsignal tracer at command line, when running your module or script. Environment variables `GRAPHSIGNAL_API_KEY` and `GRAPHSIGNAL_DEPLOYMENT` must be set.\n\n```bash\npython -m graphsignal <script>\n```\n\n```bash\npython -m graphsignal -m <module>\n```\n\n\n## Integrate\n\nGraphsignal **auto-instruments** and traces libraries and frameworks, such as [OpenAI](https://graphsignal.com/docs/integrations/openai/) and [LangChain](https://graphsignal.com/docs/integrations/langchain/). Traces, errors, and data, such as prompts and completions, are automatically recorded and available for analysis at [app.graphsignal.com](https://app.graphsignal.com/).\n\nRefer to the guides below for detailed information on:\n\n* [Session Tracking](https://graphsignal.com/docs/guides/session-tracking/)\n* [User Tracking](https://graphsignal.com/docs/guides/user-tracking/)\n* [Manual Tracing](https://graphsignal.com/docs/guides/manual-tracing/)\n* [Scores and Feedback](https://graphsignal.com/docs/guides/scores-and-feedback/)\n* [Cost and Usage Monitoring](https://graphsignal.com/docs/guides/cost-and-usage-monitoring/)\n\nSee [API reference](https://graphsignal.com/docs/reference/python-api/) for full documentation.\n\nSome integration examples are available in [examples](https://github.com/graphsignal/examples) repo.\n\n\n## Analyze\n\n[Log in](https://app.graphsignal.com/) to Graphsignal to monitor and analyze your application and monitor for issues.\n\n\n## Overhead\n\nGraphsignal tracer is very lightweight. The overhead per trace is measured to be less than 100 microseconds.\n\n\n## Security and Privacy\n\nGraphsignal tracer can only open outbound connections to `api.graphsignal.com` and send data, no inbound connections or commands are possible.\n\nPayloads, such as prompts and completions, are recorded by default in case of automatic tracing. To disable, set `record_payloads=False` in `graphsignal.configure`.\n\n\n## Troubleshooting\n\nTo enable debug logging, add `debug_mode=True` to `configure()`. If the debug log doesn't give you any hints on how to fix a problem, please report it to our support team via your account.\n\nIn case of connection issues, please make sure outgoing connections to `https://api.graphsignal.com` are allowed.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Graphsignal Tracer for Python",
"version": "0.15.5",
"project_urls": {
"Homepage": "https://graphsignal.com",
"Repository": "https://graphsignal.com"
},
"split_keywords": [
"llm observability",
" llm analytics",
" agent observability",
" agent analytics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "55812db564587d92124bfc7a31f941aad96c9e88351ae605833c6cb397377182",
"md5": "bd75194c6f385681611f0b7a927ef59f",
"sha256": "337fa67b088857fe3c6376ed9c37a1b5e4cf76312cd4d00807d858e14efcdaef"
},
"downloads": -1,
"filename": "graphsignal-0.15.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bd75194c6f385681611f0b7a927ef59f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8.1",
"size": 105353,
"upload_time": "2024-04-25T22:10:21",
"upload_time_iso_8601": "2024-04-25T22:10:21.159550Z",
"url": "https://files.pythonhosted.org/packages/55/81/2db564587d92124bfc7a31f941aad96c9e88351ae605833c6cb397377182/graphsignal-0.15.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "43276c090ca87f09834d21cae7b70b2897c8634445f21b1db46027bb8d7ff7f7",
"md5": "96a19f9e955ad51ced775a1a2611e369",
"sha256": "def2bb0cd3a9fd369a7a949b1405e5219ffd8358b04370e26ecc465c2674f927"
},
"downloads": -1,
"filename": "graphsignal-0.15.5.tar.gz",
"has_sig": false,
"md5_digest": "96a19f9e955ad51ced775a1a2611e369",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8.1",
"size": 74569,
"upload_time": "2024-04-25T22:14:48",
"upload_time_iso_8601": "2024-04-25T22:14:48.724039Z",
"url": "https://files.pythonhosted.org/packages/43/27/6c090ca87f09834d21cae7b70b2897c8634445f21b1db46027bb8d7ff7f7/graphsignal-0.15.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-25 22:14:48",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "graphsignal"
}