Возникла проблема с определением оптимальных настроек для локального клиента GCP PubSub Publisher.Начните получать «Превышен крайний срок» в течение нескольких часов после начала отправки данных, с вариациями «Поток удален» и «Ошибка подключения».
Метрики не очень обширные, и регистрация ByteCount и ElementCount из GetCurrentFlowState () издателя не делает 'не может принести много информации.
До сих пор следующие настройки работают лучше (все еще "крайний срок превышен"):
private async Task Init()
{
_topicName = new TopicName(ProjectId, TopicId);
var pubApiSets = PublisherServiceApiSettings.GetDefault();
pubApiSets.PublishSettings = CreateRetryCallSettings(10);
_pub = await PublisherClient.CreateAsync(
new TopicName(ProjectId, TopicId),
settings: new PublisherClient.Settings()
{
BatchingSettings = new BatchingSettings(
elementCountThreshold: 1000,
delayThreshold: TimeSpan.FromSeconds(10),
byteCountThreshold: 256000)
},
clientCreationSettings: new PublisherClient.ClientCreationSettings(
publisherServiceApiSettings: pubApiSets)
);
logger.Trace("client initialized");
}
private CallSettings CreateRetryCallSettings(int tryCount)
{
var retryBackoff = new BackoffSettings(TimeSpan.FromMilliseconds(500), TimeSpan.FromMilliseconds(5000), 2);
var timeoutBackoff = new BackoffSettings(TimeSpan.FromMilliseconds(60000), TimeSpan.FromMilliseconds(300000), 1.2);
return CallSettings.FromCallTiming(CallTiming.FromRetry(new RetrySettings(retryBackoff, timeoutBackoff, Expiration.None,
(RpcException e) => e.Status.StatusCode != StatusCode.AlreadyExists && --tryCount > 0,
RetrySettings.RandomJitter)));
}
Любой совет, как выбрать оптимальные настройки?
Есть ли способ получить большеподробные метрики для клиента издателя?