Open norberttech opened 5 years ago
+1 on this , even a simple index.php file with basic composer call is not working
hey @CurlyBytes could you maybe show what is not working for you? Maybe I can help with that
hi, thank you for your reply @norberttech , ill tell you everything that i did on my end
Objective - Application insights to log everything in PHP ( trace, dependency, request, metrics, etc) I started out on this one first https://packagist.org/packages/app-insights-php/monolog-handler but i don't see any documentation on how to use this one properly, did check directly in the class file itself, and this and found it uses Client Class as a parameter in the construction
upon checking the required dependency, it is already bundling the https://packagist.org/packages/app-insights-php/client the wrapper library itself
so upon reading this dependency wrapper library there obvious documentation on how to use it so i did add this on on the head of the class
then implement base on the documentation, I did even instantiate basic instantiate but an error occurred
now I did try to update the use
but still, the error is the same, if you check the folder directory of vendor composer library, the dependency wrapper of Client is present
This is why im asking how to use correctly the Client wrapper, im aware this is intended for Symfony PHP framework but it doesn't make sense it would not work accordingly because this Client wrapper is another wrapper for this app-insights-php/app-insights-php-bundle. and there is no dependency related to this wrapper aside from azure application insights and client wrapper itself, if you could help me out to achieve just like this one https://github.com/app-insights-php/app-insights-php-bundle to a non-Symfony framework/components, that would be great
FYI im using docker php 7.4 nginx, codeigniter via composer, attempting to overwrite the core log instead of using file base logging and tracking, it should use appication insights
and lastly i did try this one
but the error return goes like this
I don't know what to supply the remaining LoggerInterface and CacheInterface?
kindly enlighten me, thanks
@norberttech , may i have your thoughts on this one? thanks
sorry @CurlyBytes I have a bit hard time understanding what you are trying to achieve. Could you maybe prepare a code sample that I could run locally and reproduce your problem?
To simplify, how to use AppClientFactor class to a nonSymfony PHP, as you can see in the constructor, it is asking 4 parameters, TelemetryClient,Configuration,FailureCache and LoggerInterface, what will I put to FailureCache and loggerInterface to a nonSymfony, please advise
It's certainly possible to use this library without Symfony Framework, that's why this repository is standalone.
Very minimum setup you will need to run it requires the following dependencies:
{
"name": "norzechowicz/scratchpad",
"require": {
"app-insights-php/client": "^0.2.5",
"symfony/cache": "^5.2",
"monolog/monolog": "^2.1"
}
}
If you don't want to use symfony/cache
or monolog/monolog
packages from my example below you find more adapters for psr/simple-cache
and psr/log
:
<?php
use AppInsightsPHP\Client\ClientFactory;
use AppInsightsPHP\Client\Configuration;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Symfony\Component\Cache\Adapter\ArrayAdapter;
use Symfony\Component\Cache\Psr16Cache;
require_once __DIR__ . '/vendor/autoload.php';
new ClientFactory(
\getenv('AZURE_INSTRUMENTATION_KEY'),
Configuration::createDefault(),
new Psr16Cache(new ArrayAdapter()),
new Logger('logger', [new StreamHandler(__DIR__ . '/failure.log')])
);
Hi @norberttech , thanks for the reply, I didn't try the solution, but based on the snippets you may now close this ticket
All the best ^^
Before stable release documentation for the client should be created and linked from the https://github.com/app-insights-php/app-insights-php-bundle documentation.
We should mention there that using
trackMetric
is not recommended by Microsoft and if needed its better to usetrackEvent