Lädt...


🔧 Alarme Dynamo Throttle Events - Discord


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Essa configuração monitora determinadas métricas de uma tabela DynamoDB e envia uma notificação para um canal Discord se forem detectados eventos de throttling.

Primeiro Passo - Configuração da Lambda

Amostragem geral:

Image description

Image description

Runtime:

Image description

Variáveis de Ambiente:

Image description

Resource-based - Policy Statements (Importante para o alarme conseguir triggar a lambda)

Image description

Configuração da resource-based policy: (ARN do alarme criado para triggar a lambda)

Image description

Permissões necessárias:

Image description

Código Lambda:

import json
import boto3
import requests
import os
from datetime import datetime, timedelta

# Configurações do Discord Webhook
DISCORD_WEBHOOK_URL = os.environ['DISCORD_WEBHOOK_URL']

# Cliente boto3 para o CloudWatch
cloudwatch = boto3.client('cloudwatch')

def send_discord_notification(message):
    data = {
        "content": message
    }
    response = requests.post(DISCORD_WEBHOOK_URL, json=data)
    if response.status_code != 204:
        raise ValueError(f"Falha ao enviar notificação para o Discord: {response.status_code}, {response.text}")

def lambda_handler(event, context):
#    print("Evento recebido:", json.dumps(event))
    print(event) 
    # Métricas a serem monitoradas
    metrics_to_monitor = [
        'WriteThrottleEvents',
        'ReadThrottleEvents'
    ]

    # Nome da tabela DynamoDB a ser monitorada
    table_name = os.environ['TABLE_NAME']
    print(f"Tabela a ser monitorada: {table_name}")

    for metric_name in metrics_to_monitor:
        print(f"Verificando métrica: {metric_name}")

        response = cloudwatch.get_metric_statistics(
            Namespace='AWS/DynamoDB',
            MetricName=metric_name,
            Dimensions=[
                {
                    'Name': 'TableName',
                    'Value': table_name
                }
            ],
            StartTime=datetime.utcnow() - timedelta(minutes=5),
            EndTime=datetime.utcnow(),
            Period=60,
            Statistics=['Sum']
        )

        print(f"Resposta da CloudWatch: {response}")

        data_points = response.get('Datapoints', [])
        if data_points:
            for point in data_points:
                print(f"Ponto de dados: {point}")
                if point['Sum'] > 0:
                    message = f"Evento de throttle ({metric_name}) detectado na tabela {table_name} com {int(point['Sum'])} eventos."
                    print(f"Enviando mensagem para o Discord: {message}")
                    try:
                        send_discord_notification(message)
                    except Exception as e:
                        print(f"Erro ao enviar notificação para o Discord: {e}")
                    else:
                        print("Notificação enviada com sucesso.")
                else:
                    print(f"Nenhum evento de throttle detectado para {metric_name}.")
        else:
            print(f"Nenhum ponto de dados encontrado para {metric_name}.")

    print("Processo de verificação concluído.")

    return {
        'statusCode': 200,
        'body': json.dumps('Notificações enviadas se algum evento de throttle for detectado.')
    }

Download Lambda Code [dynamo-throttle-events.zip]
https://github.com/aldeiacloud/DynamoThrottleEvents/raw/refs/heads/main/ecbb053f-e092-4059-b39d-f8f184166e76.zip

  1. Função principal (lambda_handler):
    • Recebe o evento e o contexto quando acionada.
    • Define as métricas a serem monitoradas: WriteThrottleEvents e ReadThrottleEvents.
    • Obtém o nome da tabela DynamoDB a ser monitorada a partir das variáveis de ambiente.
    • Para cada métrica, consulta o CloudWatch para obter estatísticas sobre eventos de throttling nos últimos 5 minutos.
    • Analisa os pontos de dados retornados:
      • Se houver eventos de throttling (soma maior que 0), envia uma notificação para o Discord com detalhes.
      • Caso contrário, indica que não foram detectados eventos de throttling.
    • Finaliza o processo de verificação e retorna um status de sucesso.

A função envia uma notificação ao Discord somente se detectar eventos de throttling nas métricas monitoradas da tabela DynamoDB especificada.

Segundo Passo - Configuração do Alarme CloudWatch

Amostragem geral:

Image description

Table Name / Statistic / Period:

Image description

Condições:

Image description

Lambda action:

Image description

Image description

Feito, agora quando o alarme triggar algum throttle na leitura ou escrita da tabela configurada no alerta e nas variáveis do lambda, ele vai enviar para o grupo de texto no discord.

Após forçar um throttle, conseguimos receber o evento no Discord:

Image description

...

📰 Verzögerte Alarme: Apple bekommt den iPhone-Wecker nicht in den Griff


📈 31.24 Punkte
📰 IT Nachrichten

📰 Google Pixel: Neue Klingeltöne und Alarme


📈 31.24 Punkte
📰 IT Nachrichten

📰 Amazon Fire TV Stick bekommt Unterstützung für Alarme, Timer und Erinnerungen


📈 31.24 Punkte
📰 IT Nachrichten

📰 Remaster von Day of the Tentacle, Full Throttle und Grim Fandango erscheinen für Xbox und via Game Pass


📈 20.86 Punkte
📰 IT Nachrichten

📰 Germany goes full throttle into the cloud


📈 20.86 Punkte
📰 IT Security Nachrichten

📰 Chrome To Introduce Timer To Throttle Background Pages


📈 20.86 Punkte
📰 IT Security Nachrichten

📰 Day of the Tentacle, Full Throttle und Grim Fandango: Der Game Pass bekommt Retro-Nachschub


📈 20.86 Punkte
📰 IT Nachrichten

🐧 Thrustmaster T.16000M" and a "Thrustmaster TWCS Throttle


📈 20.86 Punkte
🐧 Linux Tipps

📰 Chrome To Introduce Timer To Throttle Background Pages


📈 20.86 Punkte
📰 IT Security Nachrichten

📰 New Benchmark Shows iPhones Throttle So Hard They Lose Their Edge Over Android


📈 20.86 Punkte
📰 IT Security Nachrichten

🔧 JavaScript Performance Optimization: Debounce vs Throttle Explained


📈 20.86 Punkte
🔧 Programmierung

📰 Kostenlos im Mac App Store: Broken Age, Grim Fandango, Full Throttle & Day of the Tentacle


📈 20.86 Punkte
📰 IT Nachrichten

🕵️ CVE-2002-0896 | Swatch 3.0.3/3.0.4 Throttle denial of service (XFDB-9100 / BID-4746)


📈 20.86 Punkte
🕵️ Sicherheitslücken

📰 macOS: Full Throttle Remastered, Broken Age und Day of the Tentacle Remastered gratis


📈 20.86 Punkte
📰 IT Nachrichten

🔧 Dart Streams with RxDart: Debounce, Throttle, and Distinct


📈 20.86 Punkte
🔧 Programmierung

📰 Chrome Experimental Feature Will Throttle Javascript-Timer Wakeups on Backgrounded Tabs


📈 20.86 Punkte
📰 IT Security Nachrichten

🔧 Debounce and Throttle design patterns explained in Javascript


📈 20.86 Punkte
🔧 Programmierung

📰 Full Throttle: Der Rocker-Rebell unter den Adventures


📈 20.86 Punkte
📰 IT Nachrichten

🔧 c# Debounce and Throttle


📈 20.86 Punkte
🔧 Programmierung

🪟 Pistol Whip's latest update, Full Throttle, is Mad Max-inspired insanity


📈 20.86 Punkte
🪟 Windows Tipps

📰 Microsoft Warns It May 'Throttle' Its Generative AI Services for 'Excessive' Users


📈 20.86 Punkte
📰 IT Security Nachrichten

🕵️ Google Android on Qualcomm PDN Throttle Use-After-Free memory corruption


📈 20.86 Punkte
🕵️ Sicherheitslücken

🔧 Debounce vs. Throttle in JavaScript


📈 20.86 Punkte
🔧 Programmierung

🔧 How to debounce and throttle in React without losing your mind


📈 20.86 Punkte
🔧 Programmierung

🔧 Dynamic throttle


📈 20.86 Punkte
🔧 Programmierung

📰 Surface Pro 6 & Surface Book 2: Throttle-Lock bremst CPU auf 400 MHz


📈 20.86 Punkte
📰 IT Security Nachrichten

🔧 Decreasing server load by using debouncing/throttle technique in reactjs


📈 20.86 Punkte
🔧 Programmierung

📰 Attackers Use Public Exploits to Throttle Atlassian Confluence Flaw


📈 20.86 Punkte
📰 IT Security Nachrichten

🔧 [Translations] Implementing Animations with Throttle in JavaScript


📈 20.86 Punkte
🔧 Programmierung

📰 I could throttle you right about now: US Navy to ditch touchscreens after kit blamed for collision


📈 20.86 Punkte
📰 IT Security Nachrichten

📰 Demon Throttle: Retro-Abenteuer für Switch wird nur in physischer Box-Form erscheinen


📈 20.86 Punkte
📰 IT Nachrichten

📰 Instagram (and Meta) Throttle Video Quality as Views Go Down


📈 20.86 Punkte
📰 IT Security Nachrichten

matomo