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

# Pika

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 Python", version: "1.3.7" },
{ name: "Pika", version: "0.12.0" }
]}
/>

Pika is een Python-implementatie van het AMQP 0-9-1-protocol. De AppSignal voor Python-integratie voor [Pika](https://pika.readthedocs.io/en/stable/) instrumenteert het verzenden en ontvangen van berichten in uw applicatie.

## Installatie

<Note>
  🐍 Vergeet niet om eerst het [AppSignal for Python-package te installeren](/python/installation) in uw applicatie.
</Note>

Installeer eerst het `opentelemetry-instrumentation-pika`-pakket.

<CodeGroup>
  ```python Python theme={null}
  # requirements.txt
  opentelemetry-instrumentation-pika
  ```
</CodeGroup>

Als u uw consumers als afzonderlijke processen uitvoert, zorg er dan ook voor dat u `appsignal` importeert en `appsignal.start()` aanroept voordat u de Pika consumer-processen start, zodat AppSignal de berichtverwerking van de consumers kan instrumenteren.

## Functies

Bij gebruik van de Pika-integratie maakt AppSignal een performance-sample aan voor elk bericht dat wordt verzonden of ontvangen door een consumer.

Wanneer een bericht wordt verzonden of ontvangen in een geïnstrumenteerde context, zoals een webrequest of background job, geeft AppSignal een event weer in de event-tijdlijn van de performance-sample dat het verzenden of ontvangen van het bericht vertegenwoordigt.
