Commit graph

8 commits

Author SHA1 Message Date
Kunal Mehta
6e9b4f0e9c Convert all array() syntax to []
Per wikitech-l consensus:
 https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html

Notes:
* Disabled CallTimePassByReference due to false positives (T127163)

Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
2016-02-17 01:33:00 -08:00
umherirrender
54c1e18eec Remove various double empty newlines
The double empty newline is not needed between functions, variable or at
end of file

Change-Id: Ib866a95084c4601ac150a2b402cfa184ebc18afa
2015-12-27 18:55:12 +00:00
Reedy
0ea1898b4e Re-enable MediaWiki.WhiteSpace.SpaceyParenthesis.SingleSpaceAfterOpenParenthesis
Fixed some SingleSpaceBeforeCloseParenthesis too

Change-Id: I1695c706a9b23ab98074ff7d6a3687eb5cdce6e7
2015-09-26 16:13:12 +00:00
Erik Bernhardson
593e7257e3 Include phpunit license for backported classes
Bug: T113765
Change-Id: I3f4242d4323d447097b2de42bfade969a6e3fd9d
2015-09-25 11:18:20 -07:00
aude
4bfbaaf682 Set visibility of monolog tests setUp method to protected
In phpunit and MediaWikiTestCase, the setUp method is protected,
and it's nice if the subclasses are consistent.

Change-Id: I4b8ac612951168913bb2dc9cf16d3dc18762a211
2015-09-22 16:57:55 +02:00
aude
641e6ed336 Also check Kafka class exists in KafkaHandlerTest
I have monolog installed but not Kafka, so still
the test was run and broken for me.

Change-Id: If396815d77b0ae25fbd5c16b628f217478062b43
2015-09-22 16:54:58 +02:00
aude
063fb8f39a Fix typo in KafkaHandlerTest
Change-Id: Ib73152a269e01bc64a4b1e7a9157de2088d152d2
2015-09-22 16:35:36 +02:00
Erik Bernhardson
f66559b616 Produce monolog messages through kafka+avro
This allows a logging channel to be configured to write
directly to kafka. Logs can be serialized either to json
blobs or the more compact apache avro format.

The Kafka handler for monolog needs a list of one of more
kafka servers to query cluster metadata from. This should be
able to use any monolog formatter, although some like
JsonFormatter require you to disable formatBatch as Kafka
protocol would prefer to encode each record independently in
the protocol.  This requires the nmred/kafka-php library,
version >= 1.3.0.

Adds a new formatter which serializes to the apache avro
format. This is a compact binary format which uses pre-
defined schemas. This initial implementation is very simple
and takes the plain schemas as a constructor argument.

Adds a new option to MonologSpi to wrap handlers in a
BufferHandler. This doesn't flush until the request shuts
down and prevents any network requests in the logger from
adding latency to web requests.

Related mediawiki/vendor update: Ibfe4bd2036ae8e998e2973f07bd9a6f057691578

The necessary config is something like:

array(
    'loggers' => array(
        'CirrusSearchRequests' => array(
            'handlers' => array( 'kafka' ),
        ),
    ),
    'handlers' => array(
        'kafka' => array(
            'factory' => '\\MediaWiki\\Logger\\Monolog\\KafkaHandler::factory',
            'args' => array( 'localhost:9092' ),
            'formatter' => 'avro',
            'buffer' => true,
        ),
    ),
    'formatters' => array(
        'avro' => array(
            'class' => '\\MediaWiki\\Logger\\Monolog\\AvroFormatter',
            'args' => array(
                array(
                    'CirrusSearchRequests' => array(
                        'type' => 'record',
                        'name' => 'CirrusSearchRequests'
                        'fields' => array( ... )
                    ),
                ),
            ),
        ),
    ),
)

Bug: T106256
Change-Id: I6ee744b3e5306af0bed70811b558a543eed22840
2015-09-21 12:45:23 -07:00