Мониторинг производительности Firebase React Собственная интеграция - PullRequest
0 голосов
/ 10 января 2020

Я установил мониторинг производительности Firebase на свое приложение React Native и успешно его интегрировал. После того, как я хочу отслеживать производительность сетевых запросов и go через как документацию.

const trackRequest = async (url,method) => {
    // Define the network metric
    const metric = await perf().newHttpMetric(url, method);

    // Define meta details
    metric.putAttribute('testAttr', 'testValue');

    // Perform a HTTP request and provide response information
    const response = await fetch(url);
    metric.setHttpResponseCode(response.status);
    metric.setResponseContentType(response.headers.get('Content-Type'));
    metric.setResponsePayloadSize(response.headers.get('Content-Length'));

    // Stop the trace
    await metric.stop();

    return response.json();
};

Я использую эту функцию из документации и вызываю ее каждые сетевые запросы время

fetch("www.example.com")
trackRequest("www.example.com","GET")

Может кто-нибудь объясните мне, что я делал не так?

1 Ответ

1 голос
/ 10 января 2020

Похоже, вы не используете API правильно. В документации есть хороший пример. Вам нужно позвонить start() в метри c, прежде чем звонить stop(). Кроме того, пример показывает, что вы должны использовать await при каждом вызове метода, но я не знаю, действительно ли это необходимо.

const trackRequest = async (url,method) => {
    const metric = await perf().newHttpMetric(url, method);

    // !!! Don't forget to call start()
    await metric.start();

    await metric.putAttribute('testAttr', 'testValue');

    const response = await fetch(url);

    await metric.setHttpResponseCode(response.status);
    await metric.setResponseContentType(response.headers.get('Content-Type'));
    await metric.setResponsePayloadSize(response.headers.get('Content-Length'));

    // Stop the trace only after you started it
    await metric.stop();

    return response.json();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...