Giter VIP home page Giter VIP logo

opentelemetry-bash's People

Contributors

actions-bot-pl avatar moflwi avatar philipplengauer avatar plengauer avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ihudak

opentelemetry-bash's Issues

Create single root span for github workflows

Suggested implementatiin: make user add a job with a single step, a root action. This action will use the github api to check when all other jobs have completed and manually start/end spans. Use @actions/artifact npm module to upload an artifact (traceparent) download in others and delete at the end

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/build.yaml
  • actions/checkout v4
  • actions/upload-artifact v4
.github/workflows/bump_version.yaml
  • actions/checkout v4
  • stefanzweifel/git-auto-commit-action v5
.github/workflows/publish_main.yaml
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/create-release v1
  • actions/upload-release-asset v1
.github/workflows/renovate.yaml
  • renovatebot/github-action v40.1.11
.github/workflows/test.yaml
  • actions/download-artifact v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/download-artifact v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
  • actions/download-artifact v4
  • actions/upload-artifact v4
pip_requirements
src/opt/opentelemetry_shell/requirements.txt
  • opentelemetry-sdk ==1.24.0
  • opentelemetry-exporter-otlp-proto-http ==1.24.0
  • opentelemetry-resourcedetector-docker ==0.4.0
  • opentelemetry-resourcedetector-kubernetes ==0.3.0

  • Check this box to trigger a request for Renovate to run again on this repository

Inject into shells that read commands from input

There are invocations like wget url/myscript.sh | sh or wget url/myscript.sh | sh -E. We need to pipe a . otel.sh into it first but also not do that if the shell is indeed interactive (stdin is connected to a terminal.

Github action always uses latest bash, not the one tagged

when using the github action, after the @ the user can specify a branch or tag. this will use the action from that revision. however, it will then internally always load the latest otel for shell. it should load the correct version.

Inject better into node children

when using child_process npm in node, children are often invoked with an absolute path. However, that means indirect injetion if that path is a shell or something similar is not working. lets normalize to the executable name from the path in case which would resolve to the same one anyway, and then use the name only.

Github job error detection not working on inner workflows

Github can trigger other complete workflows as inner workfloas. that adjusts the jobname from "inner" to "outer/inner". however, the GITHUB_JOB env var only container "inner", so we never find the correct job and therefore dont detectthat the job actually failed.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error: expecting String near e,
{

Github job error detection inaccurate

the current error detection for jobs fetches the individual steps via the API and checks if any failed. the code needs to filter for completed steps, because our shutdown job will never be the last one, there is always a built-in one. however, the api is lagging. so more jobs are completed than the API actually shows. so if one of them failed, we will miss it. that means, we will not show an error even though one may have failed.

Cumulative attribute types

Allow special attribute types like string[1]+ and int+, that take an existing span attribute, do not override it but add/append. this is useful for headers in curl and wget, as well as in resend_count (and maybe body size) where we can only incrementally count

Extended demos

provide examples and demos, ideally via small scripts that print the result to stderr

Shell built-in cd not working in experimental pipe observation mode

Looks like, pipe observation mode forces the actual command to be run into a subshell. that means cd changes the dir of the subshell, but not in shell it should be in. This will be the same problem for built-ins like set, ulimit, ... and also for functions with side effects like setting variables.
possible solutions: do not instrument builtins with sideeffects, or avoid the subshell

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

Renovate tried to run on this repository, but found these problems.

  • WARN: App has not been granted permissions to update Workflows - aborting branch.

Other Branches

These updates are pending. To force PRs open, click the checkbox below.

  • Update renovatebot/github-action action to v40.1.11

Detected dependencies

github-actions
.github/workflows/build.yaml
  • actions/checkout v4
  • actions/upload-artifact v4
.github/workflows/bump_version.yaml
  • actions/checkout v4
  • stefanzweifel/git-auto-commit-action v5
.github/workflows/publish_main.yaml
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/create-release v1
  • actions/upload-release-asset v1
.github/workflows/renovate.yaml
  • renovatebot/github-action v40.1.10
.github/workflows/test.yaml
  • actions/download-artifact v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
  • actions/download-artifact v4
  • actions/upload-artifact v4
pip_requirements
src/opt/opentelemetry_shell/requirements.txt
  • opentelemetry-sdk ==1.24.0
  • opentelemetry-exporter-otlp-proto-http ==1.24.0
  • opentelemetry-resourcedetector-docker ==0.4.0
  • opentelemetry-resourcedetector-kubernetes ==0.3.0

Fix tests for wget

They fail sparsely because the progress bar seems to garble the output

Inject into docker run

When using docker run (in contrast to start) its most likely a glorified script or similar (like for github dockerized actions). in such a case, we should try to inject into it.
config can rather easily propagated inside a docker container
however, how to install inside? should we mount all the necessary files directly? should we try to run an install inside? how do we even detect that its a support base image in the first place?

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/build.yaml
  • actions/checkout v4
  • actions/upload-artifact v4
.github/workflows/bump_version.yaml
  • actions/checkout v4
  • stefanzweifel/git-auto-commit-action v5
.github/workflows/publish_main.yaml
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/create-release v1
  • actions/upload-release-asset v1
.github/workflows/renovate.yaml
  • renovatebot/github-action v40.1.10
.github/workflows/test.yaml
  • actions/download-artifact v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
  • actions/download-artifact v4
  • actions/upload-artifact v4
pip_requirements
src/opt/opentelemetry_shell/requirements.txt
  • opentelemetry-sdk ==1.24.0
  • opentelemetry-exporter-otlp-proto-http ==1.24.0
  • opentelemetry-resourcedetector-docker ==0.4.0
  • opentelemetry-resourcedetector-kubernetes ==0.3.0

commands in if,then,else,case aren't instrumented

  1. If the otel initializer is in an if-statement, it doesn't work:
if [ "$(echo $OTEL_TOKEN_SHELL | cut -c 1-7)" != "blah." ]; then
  OTEL_TOKEN_SHELL=$(echo "$OTEL_TOKEN_SHELL" | base64 -d);
   . /usr/bin/opentelemetry_shell.sh;
  otel_instrument echo;
fi
echo "BOO" # no span will be created
  1. if the hotel initializer is in the root part of the script, and if the script contains "if-then-else" or "case", it doesn't instrument commands inside of the if/case:
. /usr/bin/opentelemetry_shell.sh
otel_instrument echo
if [ "$(echo $OTEL_TOKEN_SHELL | cut -c 1-7)" != "blah." ]; then
  OTEL_TOKEN_SHELL=$(echo "$OTEL_TOKEN_SHELL" | base64 -d);
 echo "BOO"; # no span will be created
fi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.