月: 2021年1月

  • 機械学習などで使われる p50, p90, p95 (パーセンタイル)とは

    機械学習などで使われる p50, p90, p95 (パーセンタイル)とは

    パーセンタイル

    パーセントと、パーセンタイルを比べるとわかりやすい。

    一般的な パーセントの場合は、率をあらわす。
    50パーセントは全体に対し、半分がという意味になる。

    一方でパーセンタイルは似たようでちょっと違う。
    全体を 100個に区切り、
    小さい方順にソートして 何番目にあるかを表現されている。

    p50 (50パーセンタイ)ルの場合は、
    下から 50/100に位置しているデータ。

    p90 (90パーセンタイル)の場合は、
    下から 90/100に位置しているデータ。

    p95 (95パーセンタイル)の場合は、
    下から 95/100に位置しているデータ。

    となる。

    機械学習ではなく xray でもこのパーセンタイルを採用しているが、おそらく理由は、

    それより遅い異常値を弾くことで精度の高い統計情報にするためだと考える。

  • CloudWatch の Dimensions を確認する

    CloudWatch の Dimensions を確認する

    概要

    CloudWatch の Dimensions を知りたいが、

    ブラウザで AWS のコンソール画面に入っても、Dimensions を見ることはできない。

    この時の確認の仕方を紹介。

    確認方法

    コンソールからNamespaces を調べる。

    今回 API gateway 。

    クリックしていくと、 Metric Name を選ぶので任意のものを選ぶ。

    今回は Count 

    上記メモとしてひかえ、aws cli を投げる

    aws cloudwatch list-metrics 
    --namespace AWS/ApiGateway
    --metric-name Count

    以下のようなレスポンスが返ってくる

    {
        "Metrics": [
            {
                "Namespace": "AWS/ApiGateway",
                "MetricName": "Count",
                "Dimensions": [
                    {
                        "Name": "ApiName",
                        "Value": "Tsukada API"
                    },
                    {
                        "Name": "Resource",
                        "Value": "/info/name/_search"
                    },

    Dimensions を確認することができる

     

  • An error occurred (InvalidParameterException) when calling the PutSubscriptionFilter operation: Could not execute the lambda function. Make sure you have given CloudWatch Logs permission to execute your function.

    An error occurred (InvalidParameterException) when calling the PutSubscriptionFilter operation: Could not execute the lambda function. Make sure you have given CloudWatch Logs permission to execute your function.

     CloudWatch logs から lambda subscription-filter しようとした際、以下のようなエラーになった。

    An error occurred (InvalidParameterException) when calling the PutSubscriptionFilter operation: Could not execute the lambda function. Make sure you have given CloudWatch Logs permission to execute your function.

    対処法は以下の通り lambda に対しパーミッションを追加する必要がある

    aws --profile mfa  lambda add-permission --function-name "lambda function name"  \
    --statement-id "lambdapermission-xxxxxxxxx-uniq"  \
    --principal "logs.ap-northeast-1.amazonaws.com"  \
    --action "lambda:InvokeFunction"  \
    --source-arn "arn:aws:logs:ap-northeast-1:1234567890:log-group:/aws/lambda/hogehoge-lambda-function:*"  \
    --source-account "1234567890" --region=ap-northeast-1