Skip to content
This repository has been archived by the owner on Feb 1, 2024. It is now read-only.

Create Client documentation #9

Open
norberttech opened this issue Jul 8, 2019 · 9 comments
Open

Create Client documentation #9

norberttech opened this issue Jul 8, 2019 · 9 comments
Milestone

Comments

@norberttech
Copy link
Contributor

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 use trackEvent

@norberttech norberttech added this to the 1.0 milestone Jul 8, 2019
@CurlyBytes
Copy link

+1 on this , even a simple index.php file with basic composer call is not working

@norberttech
Copy link
Contributor Author

hey @CurlyBytes could you maybe show what is not working for you? Maybe I can help with that

@CurlyBytes
Copy link

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

appinsight1

upon checking the required dependency, it is already bundling the https://packagist.org/packages/app-insights-php/client the wrapper library itself

appinsight2

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

appinsight3

then implement base on the documentation, I did even instantiate basic instantiate but an error occurred
appinsight4
image

now I did try to update the use
Appinsight5

but still, the error is the same, if you check the folder directory of vendor composer library, the dependency wrapper of Client is present
Appinsight6

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

@CurlyBytes
Copy link

and lastly i did try this one
image

but the error return goes like this
image

I don't know what to supply the remaining LoggerInterface and CacheInterface?
image

kindly enlighten me, thanks

@CurlyBytes
Copy link

@norberttech , may i have your thoughts on this one? thanks

@norberttech
Copy link
Contributor Author

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?

@CurlyBytes
Copy link

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

@norberttech
Copy link
Contributor Author

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')])
);

@CurlyBytes
Copy link

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 ^^

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants