Skip to content

Commit

Permalink
Merge pull request #1 from spryker/feature/frw-8618/master-open-telem…
Browse files Browse the repository at this point in the history
…etry

FRW-8618 Init commit
  • Loading branch information
dimitriyTsemma authored Aug 27, 2024
2 parents cf643bf + 64a45c0 commit 90b4950
Show file tree
Hide file tree
Showing 16 changed files with 487 additions and 1 deletion.
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
; This file is for unifying the coding style for different editors and IDEs.
; More information at https://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.bat]
end_of_line = crlf
36 changes: 36 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Define the line ending behavior of the different file extensions
# Set the default behavior, in case people don't have core.autocrlf set.
* text text=auto eol=lf

*.php diff=php

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.jpeg binary
*.zip binary
*.phar binary
*.ttf binary
*.woff binary
*.woff2 binary
*.eot binary
*.ico binary
*.mo binary
*.pdf binary
*.xsd binary
*.exe binary

# Remove files for archives generated using `git archive`
dependency.json export-ignore
phpstan.json export-ignore
phpstan.neon export-ignore
psalm-report.json export-ignore linguist-generated=true
tooling.yml export-ignore
.coveralls.yml export-ignore
.travis.yml export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.github/ export-ignore
architecture-baseline.json export-ignore
84 changes: 84 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: CI

on:
pull_request:
push:
branches:
- master
workflow_dispatch:

jobs:
validation:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
php-version: [
'8.1',
'8.2'
]

steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: mbstring, intl, pdo_mysql

- name: Checkout
uses: actions/checkout@v2

- name: Composer validate
run: composer validate

- name: Composer get cache directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Composer cache
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Composer install
run: |
composer --version
composer install --optimize-autoloader
prefer-lowest:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
php-version: [
'8.1'
]

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: mbstring, intl, pdo_mysql

- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Composer cache
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Composer prefer-lowest
run: composer update --prefer-dist --no-interaction --prefer-lowest --prefer-stable -o
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# IDEs
/.idea
/.project
/nbproject
/.buildpath
/.settings
*.sublime-*
*.AppleDouble
*.AppleDB
*.AppleDesktop

# OS
.DS_Store

/vendor
composer.lock
.phpunit.result.cache

/tests/_output/*
!/tests/_output/.gitkeep
17 changes: 17 additions & 0 deletions .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
build:
environment:
php: '8.1'

tests:
override:
- true # disable test execution on scrutinizer

nodes:
analysis:
tests:
override:
- php-scrutinizer-run

checks:
php:
code_rating: true
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# OtelRabbitMqInstrumentation Changelog

[Release Changelog](https://github.com/spryker/open-telemetry/releases)
46 changes: 46 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
CODE CONTRIBUTION LICENSE AGREEMENT

BY DISPLAYING, PUBLISHING, UPLOADING OR PROMOTING (COLLECTIVELY, “POSTING”) SOURCE CODE (“SOURCE CODE”)
TO SPRYKER SYSTEMS GMBH, REGISTERED WITH THE COMMERCIAL REGISTER OF THE LOWER COURT OF HAMBURG UNDER
HRB 134310 (“WE”, “US” OR ”SPRYKER”), YOU AGREE TO THIS CODE CONTRIBUTION LICENSE AGREEMENT (THE “AGREEMENT”).

You grant us and our affiliates an irrevocable, perpetual, worldwide, royalty-free, non-exclusive, unrestricted
license and right to use, reproduce and store, disseminate and otherwise exploit, modify, delete from, add to,
create derivative works of, publicly perform, publicly display, reproduce, exchange parts of Source Code or combine them with
other Source Code, use in data networks and distribute with or without consideration and without limitations as to the
number of items via all distribution channels (and to sublicense the foregoing rights through multiple tiers of licensees)
of such Source Code and any other copyright protected material for any reason and in connection with advertising and
promoting our software and/or our products in any media formats and through any channels now existing or developed in
the future. The transfer and assignment of rights covers any usage and exploitation rights for any unknown types of use
as well as with regard to any known types of use the right to unrestrictedly make publicly available and publish,
irrespective of the medium including any editions and versions and grant simple or exclusive usage, exploitation or
adaptation rights to third parties.

Spryker may reject, refuse to post or delete any Source Code for any or no reason, including, without limitation.

From time to time, we may remove the Source Code permanently or temporarily, provided that even if we do remove such
Source Code, we shall have no obligation to cease our other uses of the Source Code as permitted above.

You agree to be fully responsible for and to pay any and all royalties, fees, and any other monies owing any person or
entity by reason of any Source Code posted by you.

Spryker respects the intellectual property of others, and requires that you do the same. Your postings and the Source Code
must not infringe any copyright, patent, trademark, trade secret or other proprietary rights or other rights of any person
or entity and you may not upload, embed, post, email, transmit or otherwise make available Source Code, software or any other
material that that infringes such rights.

YOU GUARANTEE THAT: (I) YOU OWN THE SOURCE CODE POSTED BY YOU OR OTHERWISE HAVE THE RIGHT TO GRANT THE LICENSES AND RIGHTS
SET FORTH ABOVE, AND (II) THE POSTING OF YOUR SOURCE CODE DOES NOT VIOLATE THE PRIVACY RIGHTS, PUBLICITY RIGHTS, CONTRACT RIGHTS,
INTELLECTUAL PROPERTY OR ANY OTHER RIGHTS OF ANY PERSON OR ENTITY OR ANY APPLICABLE LAW.

YOU AGREE TO INDEMNIFY AND HOLD SPRYKER, ITS SUBSIDIARIES, AND AFFILIATES, AND THEIR RESPECTIVE OFFICERS, AGENTS, PARTNERS
AND EMPLOYEES, HARMLESS FROM ANY LOSS, LIABILITY, COST, EXPENSE, CLAIM OR DEMAND, INCLUDING WITHOUT LIMITATION, REASONABLE
ATTORNEYS’ FEES, DUE OR RELATING TO OR ARISING OUT OF THE USE OF YOUR SOURCE CODE IN VIOLATION OF THIS AGREEMENT AND/OR
ARISING FROM A BREACH OF ANY TERMS OF THIS AGREEMENT AND/OR ANY BREACH OF YOUR REPRESENTATIONS AND WARRANTIES SET FORTH IN
THIS AGREEMENT AND/OR ARISING OUT OF OR RELATING TO ANY SOURCE CODE THAT YOU POST.

This Agreement shall be governed by the laws of Germany to the exclusion of IPR (International Law) and the United Nations Convention
on Contracts for the International Sale of Goods (CISG). The parties consent to the jurisdiction of the courts in Berlin (Germany).

This Agreement constitutes the entire agreement between you and us concerning Spryker’s use of the Source Code. This Agreement
supersedes any prior verbal understanding between the parties. This Agreement may be amended only in a writing signed by an authorized officer of Spryker.
40 changes: 40 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
SPRYKER SYSTEMS GMBH EVALUATION LICENSE AGREEMENT

SPRYKER SYSTEMS GMBH, REGISTERED WITH THE COMMERCIAL REGISTER OF THE LOWER COURT OF HAMBURG UNDER HRB 134310
("WE" OR "SPRYKER")GRANTS YOU (THE "LICENSEE") THE RIGHT TO USE THE SOFTWARE (AS DEFINED BELOW)
UNDER THE PROVISIONS OF THIS EVALUATION LICENSE AGREEMENT (THE "AGREEMENT").

The "Software" includes any software owned and distributed by Spryker under this Agreement. The Software
contains elements of open source components, to which different license terms apply respectively.
These open source components are needed to be installed separately.

Spryker grants to Licensee, during the 45-calendar-day period (the "Evaluation Period") following the download of the Software,
the nontransferable, nonexclusive limited, free of charge license to permit Licensee's employees to internally use the Software
to test and evaluate the Software in connection with potentially purchasing non-evaluation licenses to the Software.

Licensee shall not (i) use the Software to set up a productive live system, for development purposes or any other purposes apart
from evaluating the Software; (ii) copy any part of the Software except to make one copy for back-up purposes; (iii) distribute,
disclose, market, rent, lease, or transfer the Software or act as a service bureau with respect to the Software; (iv) export the
Software or install it in multiple locations; (v) disclose any confidential information provided by Spryker; (vi) modify or make
derivative works of the Software; or (vii) allow others to make or obtain copies of the Software.

THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND. SPRYKER DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, TITLE, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. SPRYKER WILL NOT
BE LIABLE FOR ANY DAMAGES ASSOCIATED WITH THE SOFTWARE, INCLUDING WITHOUT LIMITATION ORDINARY, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL
DAMAGES OF ANY KIND, INCLUDING BUT NOT LIMITED TO DAMAGES RELATING TO LOST DATA OR LOST PROFITS, EVEN IF SPRYKER HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.

Licensee's license to use the Software shall terminate on the earlier of (i) the expiration of the Evaluation Period, or (ii) the date
both parties enter into a definitive agreement for the provision by Spryker to Licensee of a non-evaluation license to the Software.
Upon termination of the license as provided above, Licensee shall promptly destroy the Software and any back-up copy of the Software
made during the Evaluation Period if Spryker and the Licensee have not agreed a non-evaluation license to the Software.

This Agreement shall be governed by the laws of Germany to the exclusion of IPR (International Law) and the United Nations Convention
on Contracts for the International Sale of Goods (CISG). The parties consent to the jurisdiction of the courts in Berlin (Germany).

This Agreement is not assignable or transferable by Licensee and any attempt to do so is null and void.

This Agreement constitutes the entire agreement between the parties concerning Licensee's use of the Software. This Agreement supersedes
any prior verbal understanding between the parties and any Licensee purchase order or other ordering document, regardless of whether such
document is received by Spryker before or after execution of this Agreement. This Agreement may be amended only in a writing signed by
an authorized officer of Spryker.
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
# otel-rabbit-mq-instrumentation
# OtelRabbitMqInstrumentation Module
[![Latest Stable Version](https://poser.pugx.org/spryker/otel-rabbit-mq-instrumentation/v/stable.svg)](https://packagist.org/packages/spryker/otel-rabbit-mq-instrumentation)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%208.1-8892BF.svg)](https://php.net/)

Auto-instrument RabbitMq calls in Spryker application.

## Installation

```
composer require spryker/otel-rabbit-mq-instrumentation
```

## Documentation

[Spryker Documentation](https://docs.spryker.com)
13 changes: 13 additions & 0 deletions _register.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

declare(strict_types=1);

use Spryker\Service\OtelRabbitMqInstrumentation\OpenTelemetry\RabbitMqInstrumentation;

if (extension_loaded('opentelemetry') === false) {
error_log('The opentelemetry extension must be loaded in order to autoload the OpenTelemetry Spryker Framework auto-instrumentation', E_USER_WARNING);

return;
}

RabbitMqInstrumentation::register();
1 change: 1 addition & 0 deletions architecture-baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
41 changes: 41 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"name": "spryker/otel-rabbit-mq-instrumentation",
"type": "library",
"description": "OtelRabbitMqInstrumentation package",
"license": "proprietary",
"require": {
"open-telemetry/api": "^1.0",
"open-telemetry/context": "^1.0",
"open-telemetry/sem-conv": "^1.0",
"php": ">=8.1",
"spryker/rabbit-mq": "^2.0.0",
"spryker/opentelemetry": "dev-feature/frw-8618/master-open-telemetry"
},
"autoload": {
"psr-4": {
"Spryker\\": "src/Spryker/"
},
"files": [
"_register.php"
]
},
"minimum-stability": "dev",
"prefer-stable": true,
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"config": {
"sort-packages": true
},
"authors": [
{
"name": "Spryker",
"homepage": "https://spryker.com"
}
],
"include-path": [
"src/"
]
}
4 changes: 4 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
parameters:
level: 8
checkMissingIterableValueType: false
ignoreErrors:
5 changes: 5 additions & 0 deletions psalm-report.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 90b4950

Please sign in to comment.