> ## 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.

# Ownership

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: "4.3.3" }
]}
/>

Das AppSignal-Gem ist sofort kompatibel mit dem [Ownership](https://github.com/ankane/ownership/)-Gem.

## Verwendung

Wenn Sie das Ownership-Gem verwenden, um die Verantwortlichkeit für bestimmte Codeblöcke zuzuweisen, fügt das AppSignal-für-Ruby-Gem dem resultierenden Sample automatisch ein Owner-Tag hinzu, dessen Wert dem zuletzt zugewiesenen Owner eines Codeblocks während dieses Samples entspricht:

<CodeGroup>
  ```ruby Ruby theme={null}
  # This will set the owner tag for this sample to :growth
  owner :growth do
    crunch_user_numbers
  end
  ```
</CodeGroup>

<img src="https://mintcdn.com/appsignal-715f5a51/4TRZP0Sq9Zq7PAPW/assets/images/screenshots/ruby/integrations/ownership/owner-tag.png?fit=max&auto=format&n=4TRZP0Sq9Zq7PAPW&q=85&s=12141ed9f7c50631e3e5f56a92426cfd" alt="Ownership integration in AppSignal" width="1120" height="200" data-path="assets/images/screenshots/ruby/integrations/ownership/owner-tag.png" />

Sie können dieses Tag verwenden, um Samples in AppSignal nach dem Team zu filtern, das für den entsprechenden Code verantwortlich ist.

Wenn ein Fehler gemeldet wird, wird das Owner-Tag des Fehler-Samples auf den Owner des Codeblocks gesetzt, der den Fehler verursacht hat.

## Namespaces setzen

Sie können auch die [Konfigurationsoption `ownership_set_namespace`](/ruby/configuration/options#option-ownership_set_namespace`) auf `true` setzen, damit neben dem Owner-Tag auch der Namespace automatisch auf den Owner gesetzt wird.

Die Verwendung von Namespaces ermöglicht es Ihnen, einfach zu sehen, welche Performance-Actions und Fehler einem bestimmten Team gehören.

Beachten Sie, dass das Ändern des Namespaces für Actions und Fehler, die bereits an AppSignal gemeldet wurden, dazu führt, dass sie als neue Actions und Fehler gemeldet werden.

## Integration deaktivieren

Um die Integration mit dem Ownership-Gem vollständig zu deaktivieren, setzen Sie die [Konfigurationsoption `instrument_ownership`](/ruby/configuration/options#option-instrument_ownership) auf `false`.
