Skip to content

BatchLogsProcessor doesn't seem to send on timeout (or I am using it incorrectly) #1064

@tigrannajaryan

Description

@tigrannajaryan

Describe your environment
$ php -v
PHP 8.2.7 (cli) (built: Jun 8 2023 20:05:45) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies

API:

            "name": "open-telemetry/api",
            "version": "1.0.0beta10",

SDK:

            "name": "open-telemetry/sdk",
            "version": "1.0.0beta12",

Steps to reproduce
Run the following script:

<?php

declare(strict_types=1);

use OpenTelemetry\API\Logs\LogRecord;
use OpenTelemetry\SDK\Sdk;
use OpenTelemetry\SDK\Common\Attribute\Attributes;
use OpenTelemetry\SDK\Common\Instrumentation\InstrumentationScopeFactory;
use OpenTelemetry\SDK\Common\Time\ClockFactory;
use OpenTelemetry\SDK\Logs\Exporter\ConsoleExporterFactory;
use OpenTelemetry\SDK\Logs\LoggerProvider;
use OpenTelemetry\SDK\Logs\Processor\BatchLogsProcessor;

require 'vendor/autoload.php';

$loggerProvider = new LoggerProvider(
    new BatchLogsProcessor(
        (new ConsoleExporterFactory())->create(),
        ClockFactory::getDefault()
    ),
    new InstrumentationScopeFactory(Attributes::factory())
);

Sdk::builder()
    ->setLoggerProvider($loggerProvider)
    ->setAutoShutdown(true)
    ->buildAndRegisterGlobal();

$logger = $loggerProvider->getLogger('demo', '1.0', 'http://schema.url', ['scopefoo' => 'scopebar']);

$record = (new LogRecord(['foo' => 'bar', 'baz' => 'bat', 'msg' => 'hello world']))
    ->setSeverityText('INFO')
    ->setSeverityNumber(9);

$logger->emit($record);

sleep(10);

What is the expected behavior?
Expect to see the log output in 1 second (default batch processor timeout).

What is the actual behavior?
Log is output after 10 seconds, when the script execution ends.

Additional context
Filed while reviewing open-telemetry/community#1537

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsignal:loggingRelated to logging signaltc-reviewtechnical committee review feedback

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions