INTEGRITY Документация

Замена существующих TURN-серверов

Если вы уже являетесь поставщиком TURN и хотите перейти на предоставление своим клиентам Cloudflare Realtime TURN, учтите несколько моментов.

Преимущества

Служба Cloudflare Realtime TURN позволяет снизить как ощутимые, так и неощутимые затраты, связанные с TURN-серверами:

Рекомендации

Разделение окружений с помощью TURN-ключей

При масштабном использовании службы Cloudflare Realtime TURN рекомендуется разделять окружения, такие как «testing», «staging» или «production», с помощью ключей TURN. В вашем аккаунте можно создать до 1,000 ключей TURN, которые можно использовать для генерации учётных данных конечных пользователей.

Нет ограничения на количество учётных данных конечных пользователей, которые можно создать с помощью одного ключа TURN.

Присвоение пользователям пользовательских идентификаторов

Служба Cloudflare Realtime TURN позволяет присваивать каждому набору учетных данных собственный идентификатор при их создании, как показано ниже:

curl https://rtc.live.cloudflare.com/v1/turn/keys/$TURN_KEY_ID/credentials/generate \
--header "Authorization: Bearer $TURN_KEY_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{"ttl": 864000, "customIdentifier": "user4523958"}'

Используйте это поле, чтобы агрегировать использование для конкретного пользователя или группы пользователей и собирать аналитику.

Отслеживайте использование

Вы можете отслеживать использование в рамках всего аккаунта с помощью GraphQL analytics API. Это удобно для отслеживания общего использования в целях биллинга и выявления неожиданных изменений. Временные ряды данных можно получить из аналитики TURN с применением различных фильтров.

Отслеживайте злоупотребления учётными данными

Если вы передаёте учётные данные TURN конечным пользователям, возможно их несанкционированное использование. Чтобы отслеживать такие случаи, помечайте каждый набор учётных данных пользовательскими идентификаторами и отслеживайте наиболее часто встречающиеся идентификаторы в приложении с помощью GraphQL analytics API.

Как выставлять счета конечным пользователям за использование TURN

При тарификации использования TURN в вашем приложении важно понимать адаптивную выборку в аналитике TURN и учитывать её. Эта система применяет адаптивную выборку, чтобы эффективно обрабатывать большие наборы данных, сохраняя точность.

Процесс выборки в TURN-аналитике работает на двух уровнях:

Чтобы обеспечить точность тарификации, напишите один запрос, который суммирует использование TURN по каждому клиенту за период времени и возвращает единственное значение. Не используйте запросы, которые перечисляют использование сразу нескольких клиентов.

Соблюдая эти рекомендации и понимая, как TURN analytics обрабатывает выборку, вы можете обеспечить более точное выставление счетов конечным пользователям на основе их использования TURN.

Примеры запросов

query{
  viewer {
    usage: accounts(filter: { accountTag: "8846293bd06d1af8c106d89ec1454fe6" }) {
        callsTurnUsageAdaptiveGroups(
          filter: {
          datetimeMinute_gt: "2024-07-15T02:07:07Z"
          datetimeMinute_lt: "2024-08-10T02:07:05Z"
        }
          limit: 100
          orderBy: [customIdentifier_ASC]
        ) {
          dimensions {
            customIdentifier
          }
          sum {
            egressBytes
          }
        }
      }
    }
  }

Ниже приведён запрос, показывающий использование только для одного клиента.

query{
  viewer {
    usage: accounts(filter: { accountTag: "8846293bd06d1af8c106d89ec1454fe6" }) {
        callsTurnUsageAdaptiveGroups(
          filter: {
          datetimeMinute_gt: "2024-07-15T02:07:07Z"
          datetimeMinute_lt: "2024-08-10T02:07:05Z"
          customIdentifier: "myCustomer1111"
        }
          limit: 1
          orderBy: [customIdentifier_ASC]
        ) {
          dimensions {
            customIdentifier
          }
          sum {
            egressBytes
          }
        }
      }
    }
  }