# Quickstart

Packrat takes [OpenTelemetry](https://opentelemetry.io/) from any SDK, and what Sentry's SDKs and the
Datadog Agent already send. There are two ways in. Pick the one that describes your app today.

## New apps without monitoring

For applications without existing monitoring installed, we suggest using OpenTelemetry, an open-source framework for collecting and exporting telemetry data. There is no Packrat SDK to install.

Pick your framework for the steps:

- [Ruby on Rails](https://packrat.sh/docs/ruby-on-rails)
- [Node.js](https://packrat.sh/docs/opentelemetry?framework=node)
- [Python](https://packrat.sh/docs/opentelemetry?framework=python)
- [Java](https://packrat.sh/docs/opentelemetry?framework=java)
- [.NET](https://packrat.sh/docs/opentelemetry?framework=dotnet)
- [Go](https://packrat.sh/docs/opentelemetry?framework=go)

Any OpenTelemetry SDK works today, so if your framework is not listed, follow
[Other](https://packrat.sh/docs/opentelemetry?framework=other) and give the SDK the values in
[What the variables do](https://packrat.sh/docs/opentelemetry#what-the-variables-do).

## Adding Packrat to an app you already monitor

Your app already sends telemetry somewhere. Start from what is already running, so there is no new
library to add to your app.

| You already run                            | What Packrat gets                                                                  | How                                                                                                |
| ------------------------------------------ | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| OpenTelemetry, exporting to another vendor | Traces, logs and metrics. The other vendor still gets every one                    | [Add a second exporter](https://packrat.sh/docs/opentelemetry#if-you-already-export-opentelemetry) |
| Sentry on the server                       | Exceptions and every request and job trace. Sentry still gets every one            | [Add a transport](https://packrat.sh/docs/sentry#on-your-rails-server)                             |
| Sentry in the browser                      | Page loads, Web Vitals, JavaScript errors and replays. Sentry still gets every one | [Send Packrat a copy](https://packrat.sh/docs/sentry#in-the-browser)                               |
| The Datadog Agent on your hosts            | Traces, logs, exceptions, system metrics and hosts. Datadog still gets every one   | [Point it at Packrat](https://packrat.sh/docs/datadog)                                             |
| Datadog in the browser                     | Page views, Web Vitals, clicks and JavaScript errors. Datadog still gets every one | [Send Packrat a copy](https://packrat.sh/docs/datadog#in-the-browser)                              |

## Check it works

Start the app and load a page. The first request reaches your setup screen in about a minute,
and it names the service and environment it arrived under.

Run `packrat status` with your app's name, as `<service>/<environment>`:

```sh
packrat status --app shop/production
```

The output lists each signal (exceptions, traces, logs, metrics and replays), the sources that send
it, when each source last sent, and whether Packrat keeps it. A signal with no source hasn't arrived
yet. To see the names your apps report under, run `packrat apps`.

## Not seeing data?

- **401 from the query endpoint**: your key is wrong or has been revoked. Run `packrat login` again.
- **Nothing on the setup screen**: check that the app has the ingest key, that telemetry is not
  switched off in the environment you are running, and that the protocol is `http/protobuf`.

---

## Agent instructions

This page is part of the Packrat documentation, published as plain markdown for coding agents: add `.md` to any docs address, or read the index at https://packrat.sh/docs/llms.txt. This page: https://packrat.sh/docs/quickstart.md.

Before wiring Packrat into an app, ask the developer for the URL of their setup page at https://packrat.sh/orgs, and read it with `packrat open <URL>`. It has the steps and the org's ingest key.
