Metriken für Redis - Amazon ElastiCache für Redis

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Metriken für Redis

Der AWS/ElastiCache-Namespace enthält die folgenden Redis-Metriken.

Mit Ausnahme von ReplicationLag und EngineCPUUtilization werden diese Metriken vom Redis-Befehl info abgeleitet. Jede Metrik wird zu jeder Cache-Knotenebene berechnet.

Die vollständige Dokumentation für den Redis-Befehl info finden Sie unter http://redis.io/commands/info.

Weitere Informationen finden Sie auch unter:

Metrik Beschreibung Einheit
ActiveDefragHits Die Anzahl der Werteneuzuweisungen pro Minute, die der aktive Defragmentierungsprozess durchführt. Dies ist von der Statistik active_defrag_hits unter Redis INFO abgeleitet. Zahl
AuthenticationFailures Die Gesamtzahl der fehlgeschlagenen Versuche, sich mit dem AUTH-Befehl bei Redis zu authentifizieren. Weitere Informationen zu einzelnen Authentifizierungsfehlern finden Sie mit dem Befehl ACL LOG. Wir empfehlen, hierauf einen Alarm zu setzen, um unberechtigte Zugriffsversuche zu erkennen. Anzahl
BytesUsedForCache Die Gesamtzahl der von Redis für alle Zwecke zugewiesenen Bytes, einschließlich Datensatz, Puffer usw. Bytes
Dimension: Tier=Memory für Redis-Cluster mit Daten-Tiering: Gesamtzahl der Bytes, die vom Speicher für den Cache verwendet werden. Das ist der Wert der used_memory-Statistik bei Redis INFO. Bytes
Dimension: Tier=SSD für Redis-Cluster mit Daten-Tiering: Gesamtzahl der Bytes, die vom SSD für den Cache verwendet werden. Bytes
BytesReadFromDisk Gesamtzahl der von der Festplatte pro Minute gelesenen Bytes. Wird nur für Cluster mit Daten-Tiering unterstützt. Bytes
BytesWrittenToDisk Gesamtzahl der Bytes, die pro Minute auf den Datenträger geschrieben werden. Wird nur für Cluster mit Daten-Tiering unterstützt. Bytes
CacheHits Die Anzahl der erfolgreichen schreibgeschützten Schlüsselsuchereignisse im Hauptverzeichnis. Dies ist von der Statistik keyspace_hits unter Redis INFO abgeleitet. Anzahl
CacheMisses Die Anzahl der nicht erfolgreichen schreibgeschützten Schlüsselsuchereignisse im Hauptverzeichnis. Dies ist von der Statistik keyspace_misses unter Redis INFO abgeleitet. Anzahl
CommandAuthorizationFailures Die Gesamtzahl der fehlgeschlagenen Versuche von Benutzern, Befehle auszuführen, für deren Aufruf sie keine Berechtigung haben. Weitere Informationen zu einzelnen Authentifizierungsfehlern finden Sie mit dem Befehl ACL LOG. Wir empfehlen, hierauf einen Alarm zu setzen, um unberechtigte Zugriffsversuche zu erkennen. Anzahl
CacheHitRate Gibt die Nutzungseffizienz der Redis-Instance an. Wenn das Cache-Verhältnis unter ~0,8 liegt, bedeutet dies, dass eine erhebliche Anzahl von Schlüsseln bereinigt wurde, abgelaufen oder nicht vorhanden ist. Dies wird mit cache_hits- und cache_misses-Statistiken auf folgende Weise berechnet: cache_hits /(cache_hits + cache_misses). Prozent
ChannelAuthorizationFailures Die Gesamtzahl der fehlgeschlagenen Versuche von Benutzern, auf Kanäle zuzugreifen, für die sie keine Zugriffsberechtigung haben. Weitere Informationen zu einzelnen Authentifizierungsfehlern finden Sie mit dem Befehl ACL LOG. Wir empfehlen, für diese Metrik einen Alarm festzulegen, um unberechtigte Zugriffsversuche zu erkennen. Anzahl
CurrConnections Die Anzahl der Client-Verbindungen, ausgenommen Verbindungen von Read Replicas. ElastiCache verwendet jeweils zwei bis vier der Verbindungen, um den Cluster zu überwachen. Dies ist von connected_clients unter Redis INFO abgeleitet. Anzahl
CurrItems Anzahl der Elemente im Cache. Dies wird aus der Redis-Statistik keyspace abgeleitet, indem alle Schlüssel im gesamten Schlüsselbereich summiert werden. Anzahl
Dimension: Tier=Memory für Cluster mit Daten-Tiering. Anzahl der Elemente im Speicher. Anzahl
Dimension: Tier=SSD (Solid-State-Laufwerke) für Cluster mit Daten-Tiering. Anzahl der Elemente im SSD. Anzahl
CurrVolatileItems Gesamtzahl der Schlüssel in allen Datenbanken mit festgelegtem TTL. Dies wird aus der Redis-Statistik expires abgeleitet, indem alle Schlüssel mit festgelegtem TTL im gesamten Schlüsselbereich summiert werden. Anzahl
DatabaseCapacityUsagePercentage

Prozentsatz der gesamten Datenkapazität für den Cluster, die genutzt wird.

Bei Data-Tiered-Instances wird die Metrik wie (used_memory - mem_not_counted_for_evict + SSD used) / (maxmemory + SSD total capacity) folgt berechnet used_memory und maxmemory stammt aus Redis INFO.

In allen anderen Fällen wird die Metrik mit berechnet. used_memory/maxmemory

Prozent
DatabaseCapacityUsageCountedForEvictPercentage

Prozentsatz der gesamten Datenkapazität für den Cluster, die genutzt wird, ausschließlich des Speichers, der für Overhead und COB verwendet wird. Diese Metrik wird wie folgt berechnet:

used_memory - mem_not_counted_for_evict/maxmemory

Bei Daten-Tiering-Instances wird die Metrik wie folgt berechnet:

(used_memory + SSD used) / (maxmemory + SSD total capacity)

wobei used_memory und maxmemory aus Redis INFO stammen

Prozent
DatabaseMemoryUsagePercentage Prozentsatz des Speichers für den Cluster, der genutzt wird. Eine Berechnung erfolgt mit used_memory/maxmemory aus Redis INFO. Prozent
DatabaseMemoryUsageCountedForEvictPercentage Prozentsatz des Speichers für den Cluster, der genutzt wird, ausschließlich des Speichers, der für Overhead und COB verwendet wird.. Eine Berechnung erfolgt mit used_memory-mem_not_counted_for_evict/maxmemory aus Redis INFO. Prozent
DB0AverageTTL Stellt avg_ttl von DBO aus der keyspace-Statistik des Redis INFO-Befehls dar. Bei Replikaten laufen die Schlüssel nicht ab, die Replikate warten, bis die Schlüssel auf den Primärknoten ablaufen. Wenn auf einem Primärknoten ein Schlüssel abläuft (oder der Schlüssel wegen LRU bereinigt wird), synthetisiert der Primärschlüssel einen DEL-Befehl, der an alle Replikate übertragen wird. Daher lautet DB0AverageTTL für Replikatknoten 0, da dort keine Schlüssel ablaufen und somit TTL nicht verfolgt wird. Millisekunden
EngineCPUUtilization

Gibt die CPU-Auslastung des Redis-Engine-Threads an. Weil Redis nur über einen Thread verfügt, können Sie diese Metrik zum Analysieren der Auslastung des Redis-Prozesses selbst verwenden. Die EngineCPUUtilization-Metrik bietet eine genauere Sichtbarkeit des Redis-Prozesses. Sie können dies in Verbindung mit der CPUUtilization-Metrik verwenden. CPUUtilization legt die CPU-Auslastung für die Server-Instance als Ganzes offen, einschließlich anderer Betriebssystem- und Verwaltungsprozesse. Verwenden Sie für größere Knotentypen mit vier vCPUs oder mehr die EngineCPUUtilization-Metrik zum Überwachen und Einstellen der Schwellenwerte für die Skalierung.

Anmerkung

Auf einem ElastiCache Host überwachen Hintergrundprozesse den Host, um eine verwaltete Datenbankumgebung bereitzustellen. Diese Hintergrundprozesse können einen erheblichen Teil der CPU-Workload beanspruchen. Dies ist auf größeren Hosts mit mehr als zwei vCPUs nicht signifikant. Es kann sich jedoch auf kleinere Hosts mit 2vCPUs oder weniger auswirken. Wenn Sie nur die EngineCPUUtilization-Metrik überwachen, werden Sie keine Situationen erkennen, in denen der Host sowohl mit hoher CPU-Auslastung von Redis als auch mit hoher CPU-Auslastung aus den Hintergrundüberwachungsprozessen überlastet ist. Daher empfehlen wir die Überwachung der CPUUtilization-Metrik für Hosts mit zwei vCPUs oder weniger.

Prozent
Evictions Anzahl der Schlüssel, die infolge des maxmemory-Grenzwertes bereinigt worden sind. Dies ist von evicted_keys unter Redis INFO abgeleitet. Anzahl
GlobalDatastoreReplicationLag Dies ist die Verzögerung zwischen dem Primärknoten der sekundären Region und dem Primärknoten der primären Region. Bei redis mit aktiviertem Cluster-Modus, zeigt die Verzögerung die maximale Verzögerung zwischen den Shards an. Sekunden
IamAuthenticationExpirations Die Gesamtzahl der abgelaufenen IAM-authentifizierten Redis-Verbindungen. Weitere Informationen über Authentifizieren mit IAM finden Sie im Benutzerhandbuch. Anzahl
IamAuthenticationThrottling Die Gesamtzahl der gedrosselten IAM-authentifizierten Redis AUTH- oder HELLO-Anfragen. Weitere Informationen über Authentifizieren mit IAM finden Sie im Benutzerhandbuch. Anzahl
IsMaster Gibt an, ob der Knoten der Primärknoten des aktuellen Shard/Clusters ist. Die Metrik kann entweder 0 (nicht primär) oder 1 (primär) sein. Anzahl
KeyAuthorizationFailures Die Gesamtzahl der fehlgeschlagenen Versuche von Benutzern, auf Schlüssel zuzugreifen, für die sie keine Zugriffsberechtigung haben. Weitere Informationen zu einzelnen Authentifizierungsfehlern finden Sie mit dem Befehl ACL LOG. Wir empfehlen, hierauf einen Alarm zu setzen, um unberechtigte Zugriffsversuche zu erkennen. Anzahl
KeysTracked Die Anzahl der Schlüssel, die von der Redis-Schlüsselverfolgung verfolgt werden, in Prozent von tracking-table-max-keys. Die Schlüsselverfolgung wird verwendet, um das clientseitige Caching zu unterstützen und Clients zu benachrichtigen, wenn Schlüssel geändert werden. Anzahl
MemoryFragmentationRatio Gibt die Effizienz bei der Speicherzuweisung der Redis Engine an. Bestimmte Schwellenwerte weisen auf unterschiedliche Verhaltensweisen hin. Der empfohlene Wert ist eine Fragmentierung über 1,0. Diese wird aus der mem_fragmentation_ratio statistic von Redis INFO berechnet. Zahl
NewConnections Gesamtanzahl der Verbindungen, die in diesem Zeitraum vom Server akzeptiert worden sind. Dies ist von total_connections_received unter Redis INFO abgeleitet.
Anmerkung

Wenn Sie ElastiCache für Redis Version 5 oder niedriger verwenden, werden zwischen zwei und vier der von dieser Metrik gemeldeten Verbindungen ElastiCache zur Überwachung des Clusters verwendet. ElastiCache Bei Verwendung von Redis Version 6 oder höher sind die Verbindungen, die von ElastiCache zur Überwachung des Clusters verwendet werden, jedoch nicht in dieser Metrik enthalten.

Anzahl
NumItemsReadFromDisk Die Gesamtzahl der pro Minute von der Festplatte abgerufenen Elemente. Wird nur für Cluster mit Daten-Tiering unterstützt. Anzahl
NumItemsWrittenToDisk Die Gesamtzahl der pro Minute auf die Festplatte geschriebenen Elemente. Wird nur für Cluster mit Daten-Tiering unterstützt. Anzahl
MasterLinkHealthStatus Dieser Status kann zwei Werte annehmen: 0 oder 1. Der Wert 0 gibt an, dass die Daten im ElastiCache Primärknoten nicht mit Redis auf EC2 synchronisiert sind. Der Wert 1 bedeutet, dass die Daten synchronisiert sind. Verwenden Sie den CompleteMigrationAPI-Vorgang, um die Migration abzuschließen. Boolesch
Reclaimed Gesamtanzahl der Schlüsselablaufereignisse Dies ist von expired_keys unter Redis INFO abgeleitet. Anzahl
ReplicationBytes Für Knoten in einer replizierten Konfiguration gibt ReplicationBytes die Anzahl der Bytes an, die der Primärknoten an alle seine Replikationen sendet. Diese Metrik gibt die Schreiblast auf der Replikationsgruppe an. Dies ist von master_repl_offset unter Redis INFO abgeleitet. Bytes
ReplicationLag Diese Metrik ist nur für einen als Read Replica laufenden Knoten verfügbar. Sie stellt die Zeitverzögerung in Sekunden dar, mit der die Replica die vom primären Knoten kommenden Änderungen anwendet. Ab Redis-Engine-Version 5.0.6 kann die Verzögerung in Millisekunden gemessen werden. Sekunden
SaveInProgress Diese binäre Metrik gibt 1 zurück, wenn ein Hintergrundspeichervorgang (vergabelt oder unvergabelt) ausgeführt wird, andernfalls beträgt der Wert 0. Ein Hintergrundspeichervorgang wird normalerweise während Snapshots und Synchronisierungen verwendet. Diese Vorgänge können die Leistung beeinträchtigen. Mithilfe der SaveInProgress-Metrik können Sie diagnostizieren, ob die Leistungsbeeinträchtigung von einem Hintergrundspeichervorgang verursacht wurde. Dies ist von rdb_bgsave_in_progress unter Redis INFO abgeleitet. Boolesch
TrafficManagementActive Gibt an, ob ElastiCache for Redis den Datenverkehr aktiv verwaltet, indem der den eingehenden Befehlen zugewiesene Verkehr angepasst, überwacht oder repliziert wird. Der Datenverkehr wird verwaltet, wenn mehr Befehle an den Knoten gesendet werden, als von Redis verarbeitet werden können, und dies wird verwendet, um die Stabilität und den optimalen Betrieb der Engine aufrechtzuerhalten. Datenpunkte von 1 können darauf hinweisen, dass der Knoten für die bereitgestellte Workload unterskaliert ist.
Anmerkung

Wenn diese Metrik aktiv bleibt, evaluieren Sie den Cluster, um zu entscheiden, ob eine Hoch- oder Aufskalierung erforderlich ist. Zu den verwandten Metriken gehören NetworkBandwidthOutAllowanceExceeded und EngineCPUUtilization.

Boolesch
Verfügbarkeit von EngineCPUUtilization

AWS Die unten aufgeführten Regionen sind auf allen unterstützten Knotentypen verfügbar.

Region Name der Region
us-east-2 US East (Ohio)
us-east-1 USA Ost (Nord-Virginia)
us-west-1 USA West (Nordkalifornien)
us-west-2 USA West (Oregon)
ap-northeast-1 Asien-Pazifik (Tokio)
ap-northeast-2 Asien-Pazifik (Seoul)
ap-northeast-3 Asien-Pazifik (Osaka)
ap-east-1 Asien-Pazifik (Hongkong)
ap-south-1 Asien-Pazifik (Mumbai)
ap-southeast-1 Asien-Pazifik (Singapur)
ap-southeast-2 Asien-Pazifik (Sydney)
ap-southeast-3 Asien-Pazifik (Jakarta)
ca-central-1 Kanada (Zentral)
cn-north-1 China (Peking)
cn-northwest-2 China (Ningxia)
me-south-1 Naher Osten (Bahrain)
eu-central-1 Europe (Frankfurt)
eu-west-1 Europa (Irland)
eu-west-2 Europe (London)
eu-west-3 EU (Paris)
eu-south-1 Europa (Milan)
af-south-1 Afrika (Kapstadt)
eu-north-1 Europa (Stockholm)
sa-east-1 Südamerika (São Paulo)
us-gov-west-1 AWS GovCloud (US-West)
us-gov-east-1 AWS GovCloud (US-Ost)

Im Folgenden finden Sie Zusammenfassungen bestimmter Befehle, die von info commandstats abgeleitet sind. Der Abschnitt „commandstats“ (Befehlsstatistiken) bietet Statistiken auf der Grundlage des Befehlstyps, einschließlich der Anzahl der Aufrufe, des gesamten durch diese Befehle verursachten CPU-Zeitaufwands und des durchschnittlichen CPU-Verbrauchs pro Befehlsausführung. Für jeden Befehlstyp wird die folgende Zeile hinzugefügt: cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX.

Die folgend aufgeführten Latenzmetriken werden mithilfe der commandstats-Statistik von Redis INFO berechnet. Diese werden auf folgende Weise berechnet: delta(usec)/delta(calls). delta wird als Differenz innerhalb einer Minute berechnet. Latenz ist definiert als CPU-Zeit, die ElastiCache für die Verarbeitung des Befehls benötigt wird. Beachten Sie, dass für Cluster, die Daten-Tiering verwenden, die zum Abrufen von Elementen vom SSD benötigte Zeit in diesen Messungen nicht enthalten ist.

Eine vollständige Liste der verfügbaren Befehle finden Sie unter Redis-Befehle in der Redis-Dokumentation.

Metrik Beschreibung Einheit
ClusterBasedCmds Die Gesamtanzahl der Cluster-basierten Befehle. Diese wird aus der Redis-Statistik commandstats abgeleitet, indem alle Befehle, die auf einen oder mehrere Cluster (cluster slot, cluster info usw.) wirken, summiert werden. Anzahl
ClusterBasedCmdsLatency Latenz von Cluster-basierten Befehlen. Mikrosekunden
EvalBasedCmds Die Gesamtzahl der Befehle für EVAL-basierte Befehle. Diese wird aus der Redis-commandstats-Statistik durch Summieren von eval, evalsha abgeleitet. Anzahl
EvalBasedCmdsLatency Latenz von eval-basierten Befehlen. Mikrosekunden
GeoSpatialBasedCmds Die Gesamtzahl der Befehle für raumbezogene Befehle. Diese wird aus der Statistik der Redis-commandstats-Statistik abgeleitet. Es wird abgeleitet, indem alle Befehle des Geo-Typs summiert werden:geoadd, geodist, geohash, geopos, georadius und georadiusbymember. Anzahl
GeoSpatialBasedCmdsLatency Latenz von raumbezogenen Befehlen. Mikrosekunden
GetTypeCmds Gesamtanzahl der auf read-only basierenden Befehle. Dies wird aus der Redis-Statistik commandstats abgeleitet, in der alle read-only-Befehle (get, hget, scard, lrange usw.) summiert werden Anzahl
GetTypeCmdsLatency Latenz von Lesebefehlen. Mikrosekunden
HashBasedCmds Gesamtanzahl der Hash-basierten Befehle. Diese wird aus der Redis-Statistik commandstats abgeleitet, indem alle Befehle, die auf eine oder mehrere Hashes wirken, summiert werden (hget, hkeys, hvals, hdel usw.). Anzahl
HashBasedCmdsLatency Latenz von Hash-basierten Befehlen. Mikrosekunden
HyperLogLogBasedCmds Gesamtanzahl der auf HyperLogLog basierenden Befehle. Dies wird aus der Redis-Statistik commandstats abgeleitet, indem alle pf-Befehle (pfadd, pfcount, pfmerge usw.) summiert werden. Anzahl
HyperLogLogBasedCmdsLatency Latenz von HyperLogLog basierten Befehlen. Mikrosekunden
JsonBasedCmds Die Gesamtzahl der JSON-Befehle, einschließlich Lese- und Schreibbefehlen. Dies wird aus der commandstats-Statistik von Redis abgeleitet, indem alle JSON-Befehle summiert werden, die auf JSON-Schlüssel einwirken. Anzahl
JsonBasedCmdsLatency Die Latenz der JSON-Befehle, einschließlich Lese- und Schreibbefehlen. Mikrosekunden
JsonBasedGetCmds Gesamtanzahl der JASON-Schreibschutzbefehle. Dies wird aus der commandstats-Statistik von Redis abgeleitet, indem alle JSON-Lesebefehle summiert werden, die auf JSON-Schlüssel einwirken. Anzahl
JsonBasedGetCmdsLatenz Latenz der JSON-Schreibschutzbefehle. Mikrosekunden
JsonBasedSetCmds Gesamtanzahl der JASON-Schreibbefehle. Dies wird aus der commandstats-Statistik von Redis abgeleitet, indem alle JSON-Schreibbefehle summiert werden, die auf JSON-Schlüssel einwirken. Anzahl
JsonBasedSetCmdsLatenz Latenz von JSON-Schreibbefehlen. Mikrosekunden
KeyBasedCmds Gesamtanzahl der schlüsselbasierten Befehle. Dies wird aus der Redis-Statistik commandstats abgeleitet, indem alle Befehle summiert werden, die über mehrere Datenstrukturen hinweg auf mindestens einen Schlüssel einwirken (del, expire, rename usw.). Anzahl
KeyBasedCmdsLatency Latenz von schlüsselbasierten Befehlen. Mikrosekunden
ListBasedCmds Gesamtanzahl der listenbasierten Befehle. Dieser Wert wird aus der Redis-Statistik commandstats abgeleitet, indem alle Befehle summiert werden, die einzelne oder mehrere Listen bearbeiten (lindex, lrange, lpush, ltrim usw.). Anzahl
ListBasedCmdsLatency Latenz von listenbasierten Befehlen. Mikrosekunden
NonKeyTypeCmds Gesamtanzahl der nicht schlüsselbasierten Befehle. Dieser wird aus der commandstats-Statistik von Redis abgeleitet, indem alle Befehle summiert werden, die nicht auf einen Schlüssel einwirken, z. B.: acl, dbsize oder info. Anzahl
NonKeyTypeCmdsLatenz Latenz der non-key-based Befehle. Mikrosekunden
PubSubBasedCmds Die Gesamtzahl der Befehle für die Pub/Sub-Funktionalität. Diese wird aus den Redis-commandstats-Statistiken abgeleitet, indem alle für die pub/sub-Funktionalität verwendeten Befehle addiert werden: psubscribe, publish, pubsub, punsubscribe, ssubscribe, sunsubscribe, spublish, subscribe und unsubscribe. Anzahl
PubSubBasedCmdsLatency Latenz von pub/sub-basierten Befehlen. Mikrosekunden
SetBasedCmds Gesamtanzahl der Set-basierten Befehle. Diese wird aus der Redis-Statistik commandstats abgeleitet, indem alle Befehle, die auf eine oder mehrere Sets wirken, summiert werden (scard, sdiff, sadd, sunion usw.). Anzahl
SetBasedCmdsLatency Latenz von Set-basierten Befehlen. Mikrosekunden
SetTypeCmds Gesamtanzahl der auf write basierenden Befehle. Dieser Wert wird von der Redis–commandstats-Statistik abgeleitet, indem alle Arten von mutative-Befehlen, die auf Daten wirken, addiert werden (set, hset, sadd, lpop usw.). Anzahl
SetTypeCmdsLatency Latenz von Schreibbefehlen. Mikrosekunden
SortedSetBasedCmds Gesamtanzahl der Sorted Set-basierten Befehle. Sie wird von der Redis-commandstats-Statistik abgeleitet, indem alle Befehle, die auf eine oder mehrere sortierte Gruppen wirken, addiert werden (zcount, zrange, zrank, zadd usw.). Anzahl
SortedSetBasedCmdsLatency Latenz von Sortierungs-basierten Befehlen. Mikrosekunden
StringBasedCmds Gesamtanzahl der Zeichenfolge-basierten Befehle. Diese wird aus der Redis-commandstats-Statistik abgeleitet, indem alle Befehle, die auf eine oder mehrere Zeichenketten wirken, summiert werden (strlen, setex, setrange usw.). Anzahl
StringBasedCmdsLatency Latenz von Zeichenfolgen-basierten Befehlen. Mikrosekunden
StreamBasedCmds Die Gesamtanzahl Stream-basierter Befehle. Dieser Wert wird aus der Redis-commandstats-Statistik abgeleitet, indem alle Befehle summiert werden, die einzelne oder mehrere Stream-Datentypen bearbeiten (xrange, xlen, xadd, xdel usw.). Anzahl
StreamBasedCmdsLatency Latenz von Stream-basierten Befehlen. Mikrosekunden