> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MongoDB-Instrumentation

export const VersionRequirements = ({versions = []}) => {
  if (!Array.isArray(versions) || versions.length === 0) {
    return null;
  }
  const boundaries = {
    upper: " or lower",
    exact: "",
    lower: " or higher"
  };
  const containerStyle = {
    marginTop: "0.5rem",
    marginBottom: "1.5rem"
  };
  const lineStyle = {
    display: "block",
    margin: "0 0 0.35rem 0",
    fontSize: "0.875rem",
    lineHeight: "1.4"
  };
  const pillBaseStyle = {
    display: "inline-block",
    padding: "0.1em 0.4em",
    borderRadius: "0.25rem",
    border: "1px solid",
    fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
    fontSize: "0.85em",
    fontWeight: 500
  };
  const pillColors = {
    "AppSignal for Elixir": {
      background: "#f3e8ff",
      borderColor: "#e9d5ff",
      color: "#9333ea"
    },
    "AppSignal for Front-end": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Go": {
      background: "#ccfbf1",
      borderColor: "#99f6e4",
      color: "#0d9488"
    },
    "AppSignal for JavaScript": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Node.js": {
      background: "#dcfce7",
      borderColor: "#bbf7d0",
      color: "#16a34a"
    },
    "AppSignal for Python": {
      background: "#dbeafe",
      borderColor: "#bfdbfe",
      color: "#2563eb"
    },
    "AppSignal for Ruby": {
      background: "#fee2e2",
      borderColor: "#fecaca",
      color: "#dc2626"
    },
    "AppSignal for Rust": {
      background: "#ffedd5",
      borderColor: "#fed7aa",
      color: "#ea580c"
    }
  };
  const defaultPillColor = {
    background: "#f4f4f5",
    borderColor: "#e4e4e7",
    color: "#52525b"
  };
  const getPillStyle = name => ({
    ...pillBaseStyle,
    ...pillColors[name] || defaultPillColor
  });
  const getBoundText = bound => {
    return boundaries[bound] || boundaries.lower;
  };
  return <div style={containerStyle}>
      {versions.map((v, i) => <p key={`${v.name}-${v.version}-${v.bound || "lower"}-${i}`} style={lineStyle}>
          This feature requires{" "}
          <code style={getPillStyle(v.name)}>{v.name}</code> version {v.version}
          {getBoundText(v.bound)}.
        </p>)}
    </div>;
};

<VersionRequirements
  versions={[
{ name: "AppSignal for Ruby", version: "1.0" }
]}
/>

Das [Mongoid]-Gem basiert auf dem [Mongo Ruby Driver]. AppSignal aktiviert die Instrumentation des Mongo Ruby Drivers automatisch, wenn er im Projekt erkannt wird.

Die MongoDB-Instrumentation von AppSignal unterstützt das [Mongo Ruby Driver]-Gem und das [Mongoid]-Gem sofort, ohne manuelles Setup. Wenn AppSignal MongoDB-Metriken erkennt, wird ein [Magic Dashboard](#magic-dashboard) erstellt, mit dem Sie zentrale Metriken visuell überwachen können.

## Performance-Monitoring

Sobald AppSignal beginnt, MongoDB-Metriken zu melden, erhalten Sie Performance-Einblicke über:

* [Event-Timeline](#event-timeline)
* [Sample-Breakdown](#sample-breakdown)
* [Slow Queries](#slow-queries)

### Event-Timeline

Die Event-Timeline bietet tiefe Einblicke in die Performance von MongoDB-Abfragen, sodass Sie genau sehen, welche Abfragen wann ausgeführt werden und welchen Einfluss sie auf die Reaktionsfähigkeit Ihrer Anwendung haben.

<img src="https://mintcdn.com/appsignal-715f5a51/4TRZP0Sq9Zq7PAPW/assets/images/screenshots/ruby/integrations/mongodb/event-timeline.png?fit=max&auto=format&n=4TRZP0Sq9Zq7PAPW&q=85&s=f3f8e02b4125bccc426dc388631ae24a" alt="Example MongoDB event timeline" width="1314" height="680" data-path="assets/images/screenshots/ruby/integrations/mongodb/event-timeline.png" />

### Sample-Breakdown

Sample-Breakdowns ermöglichen es Ihnen, die MongoDB-Performance auf einen Blick zu überprüfen, sodass Sie Performance-Probleme schnell erkennen können, ohne tief in die Details eintauchen zu müssen.

<img src="https://mintcdn.com/appsignal-715f5a51/4TRZP0Sq9Zq7PAPW/assets/images/screenshots/ruby/integrations/mongodb/sample-breakdown.png?fit=max&auto=format&n=4TRZP0Sq9Zq7PAPW&q=85&s=43404cce6c91f5d9162541884e9a1766" alt="Example MongoDB performance sample" width="1310" height="430" data-path="assets/images/screenshots/ruby/integrations/mongodb/sample-breakdown.png" />

### Slow Queries

AppSignal verfügt über eine ganze Reihe von Tools, die Ihnen helfen, die Performance Ihrer Anwendung zu verbessern. Slow Queries ist eine einfache und informative Übersicht der langsamen Abfragen Ihrer Anwendung und deren Auswirkungen auf die Performance, sodass Sie schnell und sicher entscheiden können, welche Schritte zur Optimierung erforderlich sind.

<img src="https://mintcdn.com/appsignal-715f5a51/4TRZP0Sq9Zq7PAPW/assets/images/screenshots/ruby/integrations/mongodb/slow-queries.png?fit=max&auto=format&n=4TRZP0Sq9Zq7PAPW&q=85&s=b08cf67361773c2cb5b900d8be3e6255" alt="Example of AppSignal slow queries feature" width="2050" height="1030" data-path="assets/images/screenshots/ruby/integrations/mongodb/slow-queries.png" />

## Magic Dashboard

Wenn AppSignal MongoDB-Metriken empfängt, erstellt es ein MongoDB Magic Dashboard, das im Dashboard-Bereich der AppSignal-App verfügbar ist.

Das MongoDB Magic Dashboard enthält die folgenden Graphen:

| Graph                                | Metriken                 | Tags       |
| ------------------------------------ | ------------------------ | ---------- |
| [Throughput](#throughput-graph)      | `mongodb_query_duration` | `database` |
| [Query-Dauer](#query-duration-graph) | `mongodb_query_duration` | `database` |

Tags geben Ihnen eine kontextbezogene Aufschlüsselung der Active-Job-Performance-Informationen. Derzeit meldet AppSignal die folgenden Tags für Active-Job-Jobs:

| Name       | Beschreibung                                         |
| ---------- | ---------------------------------------------------- |
| `database` | Name der Datenbank, aus der die Metrikdaten stammen. |

Jedes Tag wird durch eine farbige Linie im Graphen dargestellt:

<img src="https://mintcdn.com/appsignal-715f5a51/4TRZP0Sq9Zq7PAPW/assets/images/screenshots/ruby/integrations/mongodb/dashboard.png?fit=max&auto=format&n=4TRZP0Sq9Zq7PAPW&q=85&s=c1765eeec6ec674e68749b07af56a796" alt="Example MongoDB dashboard" width="1432" height="672" data-path="assets/images/screenshots/ruby/integrations/mongodb/dashboard.png" />

### Throughput-Graph

Der Throughput-Graph zeigt die Anzahl der Abfragen, die auf jeder MongoDB-Datenbank ausgeführt werden.

Sie können diesen Graphen verwenden, um zu verstehen, wie viele Abfragen die Datenbanken Ihrer App verarbeiten, ineffiziente Abfragen zu erkennen und potenzielle n+1- und Skalierungsprobleme zu identifizieren.

### Query-Dauer-Graph

Der Query-Dauer-Graph zeigt das 95. Perzentil und die durchschnittliche Dauer der auf jeder MongoDB-Datenbank ausgeführten Abfragen.

Sie können diesen Graphen verwenden, um die Performance von Datenbankabfragen zu verstehen, Performance-Probleme zu lokalisieren und langsame Abfragen zu optimieren.

[Mongoid]: https://github.com/mongodb/mongoid

[Mongo Ruby Driver]: https://github.com/mongodb/mongo-ruby-driver
