投稿

ラベル(実装)が付いた投稿を表示しています

Python レートリミッター実装

Pythonで実装するレートリミッター Pythonで実装するレートリミッター レートリミッターは、特定の期間内に特定のユーザーやIPアドレスからのリクエスト数を制限する仕組みです。これは、APIの過負荷を防ぎ、悪意のある攻撃(DDoS攻撃など)から保護するために非常に重要です。本記事では、Pythonで簡単なレートリミッターを実装する方法を紹介します。 レートリミッターの基本的な考え方 レートリミッターは、通常、以下の要素で構成されます。 制限数 (Limit): 一定期間内に許可されるリクエストの最大数 時間間隔 (Interval): リクエストが許可される間隔の長さ(通常は秒単位) カウンター (Counter): 許可されたリクエストの数を追跡する変数 これらの要素に基づいて、現在のリクエストが制限を超えているかどうかを判断し、超過している場合はリクエストを拒否します。 Pythonによるレートリミッターの実装例 以下に、Pythonでレートリミッターを実装する簡単な例を示します。 import time class RateLimiter: def __init__(self, limit, interval): self.limit = limit self.interval = interval self.request_times = {} # ユーザーまたはIPアドレスに基づいてリクエスト時刻を記録 def is_allowed(self, identifier): now = time.time() if identifier not in self.request_times: self.request_times[identifier] = [] # リクエスト時刻を最新の状態に更新 self.request_times[identifier].append(now) self.request_times[identifier].sort() # 最後のリクエストがinter...

異常検知アルゴリズムの実装例

異常検知アルゴリズムの実装例 異常検知アルゴリズムの実装例 異常検知は、データの中に通常とは異なるパターンを見つけることで、様々な問題を早期に発見し、対策を講じることを目的とした技術です。本記事では、いくつかの代表的な異常検知アルゴリズムを実装例を交えて解説します。 1. 移動平均法による異常検知 移動平均法は、過去のデータを使って平均値を計算し、その値と現在のデータとの差を計算することで、異常値を検出します。 // JavaScript の例 function detectAnomaly(data, windowSize) { const movingAverage = []; for (let i = 0; i a + b, 0); const movingAverage = sum / windowSize; movingAverage.push(movingAverage); } } const differences = movingAverage.map((ma, i) => Math.abs(data[i] - ma)); const threshold = differences.sort((a, b) => a - b)[Math.floor(differences.length / 2)]; // 中央値を使用 const anomalies = differences.map((diff, i) => diff > threshold ? i : null); return anomalies; } // 例 const data = [10, 12, 15, 13, 16, 18, 20, 19, 22, 25]; const windowSize = 3; const anomalies = detectAnomaly(data, windowSize); console.log("Anomalies:", anomalies); この例では、`windowSize` で指定された期間の移動平均を計算し、その平均値から現在のデータとの差を計算しています。差が一定の閾値を超えた場合に、...