Hey, Been bashing my head against the wall and fi...
# support
n
Hey, Been bashing my head against the wall and finally decided to ask for some help or at least some insights in where I can go next. Context: I am trying to set up signoz with tracing, logs and metrics for my company's dotnet applications. I am using AWS EKS clusters. I have one that is hosting signoz and then other clusters for different environments. I have validated that I can reach the signoz collector ingress from the other clusters I have access to the pipelines but not the code, so I can add stuff to the Dockerfile. --- Question: I have been trying to figure out how to get the traces, logs and metrics for the applications into signoz. I was able to get the k8s-infra working but I can't figure out how to get the apm info for the applications into signoz. Is there a way to get the apm stuff into the k8s-infra? I went down the path of installing the otel operator and using the instrumentation crd to insert info into the pods on the remote clusters, for example:
Copy code
apiVersion: <http://opentelemetry.io/v1alpha1|opentelemetry.io/v1alpha1>
kind: Instrumentation
metadata:
  name: dotnet-instrumentation
  namespace: test
spec:
  exporter:
    endpoint: ingest.monitoring.internal:80
  propagators:
    - tracecontext
    - baggage
    - b3  # You can modify propagators based on your use case
  sampler:
    type: parentbased_always_on

  dotnet:
    env:
      - name: OTEL_HOST_IP
        valueFrom:
          fieldRef:
            fieldPath: status.hostIP
      - name: OTEL_EXPORTER_OTLP_ENDPOINT
        value: ingest.monitoring.internal:80
      - name: OTEL_K8S_POD_IP
        valueFrom:
          fieldRef:
            fieldPath: status.podIP
      - name: OTEL_K8S_POD_UID
        valueFrom:
          fieldRef:
            fieldPath: metadata.uid
      - name: OTEL_EXPORTER_OTLP_INSECURE
        value: "true"
      - name: OTEL_TRACES_EXPORTER
        value: otlp
      - name: OTEL_EXPORTER_OTLP_PROTOCOL
        value: grpc
      - name: OTEL_RESOURCE_ATTRIBUTES
        value: "service.name=$(OTEL_SERVICE_NAME),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.pod.uid=$(OTEL_K8S_POD_UID)"
Now when I do this, the applications has all the information, but I am still not seeing anything in signoz. So the question is, how do I move forward troubleshooting? Is there more info I can provide? Thanks in advance! Nick Side Note: I have tried to use odigos since it automatically sets up instrumentation and pushes using otel but I am not seeing any of the information from it inside signoz and I am not seeing any errors in signoz
I should add that this is my Dockerfile:
Copy code
FROM <http://mcr.microsoft.com/dotnet/sdk:7.0|mcr.microsoft.com/dotnet/sdk:7.0> AS build-env

# install OpenTelemetry .NET Automatic Instrumentation
ARG OTEL_VERSION=1.9.0
ADD <https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/download/v${OTEL_VERSION}/otel-dotnet-auto-install.sh> otel-dotnet-auto-install.sh
RUN apt-get update && apt-get install -y unzip && \
    OTEL_DOTNET_AUTO_HOME="/otel-dotnet-auto" sh otel-dotnet-auto-install.sh

WORKDIR /App

# Copy everything
COPY . ./
# Restore as distinct layers
RUN dotnet restore
# Build and publish a release
RUN dotnet publish -c Release -o out
# Build runtime image
FROM <http://mcr.microsoft.com/dotnet/aspnet:7.0|mcr.microsoft.com/dotnet/aspnet:7.0>
WORKDIR /App
COPY --from=build-env /App/out .
ENTRYPOINT ["dotnet", "my-app.dll"]
n
Awesome Nicholas, we didn’t have much expertise with dotnet to help you with this. Would you be interested in writing a blog on this @Yuvraj Singh will help you out with details if you are interested.
n
Yeah, I can write a blog about it. That would be fun, especially since I got it working
Found out I didn't need to do the dockerfile items since the otel operator will automatically inject the binaries. Took me a sec to find the otel logs in the container but apparently it was a stupid thing, i needed to put
http://
in front of the endpoint. @Yuvraj Singh, let me know what you need and I can get started on an outline.
do you want it to be about my experience and how I made it work or more an article just on getting signoz set up with dotnet containers?
n
I think you can include both in the article will be good on on the how you instrumented your dotnet application, the issues you faced and the solution you came up with. I will let Yuvraj decide more detailed outline.
n
just noticed I am not actually getting logs. metrics and traces, yes but nothing is showing in the logs screen
I was getting logs from k8s-infra until I turned that off to not have duplication but now nothing except the expected k8s events from k8s-infra
also noticed it when in traces, I clicked
Go to Related Logs
nm, figured that out too
y
Hey @Nicholas Weight can you DM me your email please, I will share a notion space with you so you can start with the outline.