flitnetics / jaeger-objectstorage

Jaeger plugin for object storage datastore
Apache License 2.0
47 stars 7 forks source link

AWS + Dynamo store mode, Dynamo tables could not be found #77

Closed alexsorkin closed 1 year ago

alexsorkin commented 1 year ago

I'm getting following error, once enabling aws-dynamo store mode: failed to flush user" err="ResourceNotFoundException: Requested resource not found"

NOTE: This works with default bolt shipper... But indexes are created in S3.

Config: ` schema_config: configs:

muhammadn commented 1 year ago

Can you try with this instead?

schema_config:
  configs:
  - from: 2020-10-24
    store: aws
    object_store: s3
    schema: v11
    index:
      prefix: index_
      period: 24h
      tags: {}

 storage_config:
  aws:
    s3: s3://us-east-1/rocky-dev-loki
    dynamodb:
      dynamodb_url: dynamodb://us-east-1

Reference: https://medium.com/codex/setup-loki-storage-to-aws-s3-and-dynamodb-in-kubernetes-with-kiam-4c223a0b7995

Also check the documents of loki. It's the same. store should be aws and not aws-dynamo

https://grafana.com/docs/loki/latest/configuration/examples/#aws-basic-configyaml

alexsorkin commented 1 year ago

Hi,

Could it be if I am already having the objects in S3 created with bolt shipper, and than I switched to aws store mode... The compactor service can't actually find the corresponding tables for existing objects?

I mean, I configured it first like in examples with boltdb-shipper as store type. Then tried to switch to aws-dynamo AND aws. Both produced the error.

muhammadn commented 1 year ago

@alexsorkin the error ResourceNotFoundException: Requested resource not found has nothing to do with boltdb-shipper.

It has to do with dynamodb. read here: https://stackoverflow.com/questions/40192304/aws-dynamodb-resource-not-found-exception

muhammadn commented 1 year ago

@alexsorkin Have you tried using access key and secret? (if you're not using IRSA, which i suspect, since your current configuration will only work with IRSA)

https://grafana.com/docs/loki/latest/configuration/examples/#aws-basic-configyaml

As mentioned (again) referenced from the document, you should try like this:

schema_config:
  configs:
  - from: 2020-05-15
    store: aws
    object_store: s3
    schema: v11
    index:
      prefix: loki_
storage_config:
  aws:
    s3: s3://access_key:secret_access_key@region/bucket_name
    dynamodb:
      dynamodb_url: dynamodb://access_key:secret_access_key@region

NOTE: dynamodb_url: dynamodb://access_key:secret_access_key@region

alexsorkin commented 1 year ago

Hi, unfortunately I had to abandon this solution.

The traces being produced are malformed and the performance haven't met our requirements. This solution could be used only for one collector producer. Distributed traces are not supported at all.

muhammadn commented 1 year ago

@alexsorkin Where do you view the distributed traces? Is it in Jaeger-UI or Kiali?

jaeger-objectstorage supports multiple collectors, which was solved with the latest version. Older versions have a problem with performance, until we rewrote it to use loki to save and retrieve the data. Internally we use loki - if it works with loki, it will work with jaeger-objectstorage.

I've tried to provide extensive documentation but if you need more support you can contact us. We've already deployed jaeger-objectstorage in production and since the code is opensource, you are free to do whatever you want with it.