Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 16:20
    Igor-lkm commented #219
  • 16:19
    Igor-lkm commented #219
  • 15:23
    jeqo synchronize #2770
  • 15:23

    jeqo on collector-enablers

    refactor: collector enabled tru… (compare)

  • 15:19

    llinder on master

    Adds SQS Sender implementation … Merge pull request #141 from ll… (compare)

  • 15:19
    llinder closed #141
  • 14:44
    drmaas commented #31
  • 14:42
    dayadev commented #142
  • 14:41
    elefeint commented #133
  • 14:26
    dio commented #77
  • 14:05
    elefeint commented #133
  • 14:01
    mstaalesen commented #219
  • 13:35
    jeqo synchronize #2770
  • 13:35

    jeqo on collector-enablers

    docs: add collector enabled (compare)

  • 13:34
    jeqo synchronize #2770
  • 13:34

    jeqo on collector-enablers

    docs: add collector enabled (compare)

  • 13:28
    jeqo synchronize #2770
  • 13:28

    jeqo on collector-enablers

    docs: add collector enabled (compare)

  • 13:05
    Igor-lkm commented #219
  • 10:12
    mstaalesen commented #219
Luis Weir
@luisw19
Thanks @devinsba will have a look
José Carlos Chávez
@jcchavezs
Did you sort it out @luisw19 ?
lambcode
@lambcode
Thanks @adriancole and @jorgheymans. I think that the messaging pattern is more what I am looking for anyway. Just wanted to be sure I wasn't missing something.
laijianbin
@laijianbin
Zipkin how to pass username and password to connect with Elasticsearch while which has configured x-pack for anthentication
laijianbin
@laijianbin
Adrian Cole
@adriancole
@lambcode yep messaging also surpringly enough has a budding design doc :)
@laijianbin hmmm the link you sent has the instructions in it https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage
Adrian Cole
@adriancole
@luisw19 I think it can become in general tricky to use one ID for another purpose. ex if a session matches a span then that's good.. but I think session is sometimes a phrase used for multiple calls. in that case using an identifier relating to session (ex session-id) is probably a better idea. Probably need to study closely exactly what fields you have at your disposal, and what part of one or more traces you are trying to lasso around. then fit that to an existing property, tag or otherwise
one way to get to the point of analysis is to draw on a screen shot of a trace, which part of it you are trying to correlate together, and think about if this includes only the trace you are seeing or potentially multiple ones

mstaalesen
@mstaalesen
Hi, I'm having some issues with Lens and queries
If I do a query like this: endTs=1566468710313&limit=10&lookback=1h&serviceName=MyServiceName
and sort by duration
(desc)
I expected to get the 10 longest spans/traces the last hour
but it seems to just fetch the 10 latest spans and then order those
is there a way to say to zipkin: give me the 10 largest/longest spans the last hour or 10 hours?
right now it seems that I have to up the limit to get what I want. But then it will also show all the other spans that was returned.
José Carlos Chávez
@jcchavezs
What is your storage? @mstaalesen
mstaalesen
@mstaalesen
elastic
Stanleytam
@stanltam_twitter
Hi all, may I know if openzipkin are able to connect with elasticsearch with cert auth enabled?
Luis Weir
@luisw19

@adriancole yes in our context a session means all calls made by the UI from the moment a user opens the UI until it is closed (think of it as login and logout). There is a specific HTTP header specifying a unique session Id (e.g.x-session-id), however not sure how to get access to this header from Zipkin JS.

Right now based on @basvanbeek suggestion I managed to set a new tag to the same value of the span Id so I can then be able to search on it (and it works). Below how I did it:

function newRecorder() {
  const logger = {
    logSpan: (span: any) => {
      //we add custom sessionId tag only if it's the first span
      if(!span.parentId){
        span.tags.sessionId = span.id;
      }
      httpLogger.logSpan(span);
    }
  };
  return new BatchRecorder({logger});
}

then when creating the tracer constant I just reference the newRecorder()function:

export const tracer = new Tracer({
  ctxImpl, 
  recorder: newRecorder(), 
  sampler: new sampler.CountingSampler(zipkinSamplingRate),
  localServiceName
});

if I can find a way to access to the http headers of a the HTTP call being traced, then I could just set span.tags.sessionId to the value of x-session-id.

laijianbin
@laijianbin
@adriancole yeah,it is.I am resolved my problem right now. thank for you help again.
Adrian Cole
@adriancole
@luisw19 I feel like I was just talking to someone about this
@laijianbin :thumbsup: good to hear
@mstaalesen you can use ES_HTTP_LOGGING option to see literally the queries in use
we do have some unit tests to rank things. note that the UI sort order is only sorting the results back from the server. the duration query is different than sorting. it just looks for 10 that satisfy the constraint
mstaalesen
@mstaalesen
yeah, I got that.
if you want to make a test you can.. there's some similar nuance test in cassandra
@luisw19 ahh yeah here it is. maybe you can comment on this and see if it makes sense to collaborate on the parsing thing https://github.com/openzipkin/zipkin-js/issues/441#issuecomment-522798189
mstaalesen
@mstaalesen
thanks, I'll have a look
Stanleytam
@stanltam_twitter
@adriancole , may I know if openzipkin are able to connect with elasticsearch with cert auth enabled? can we simply set JAVA_OPTS as followings?
-Djavax.net.ssl.keyStore=path_to_keystore_file
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=path_to_truststore_file
-Djavax.net.ssl.trustStorePassword=password
Luis Weir
@luisw19

@adriancole thanks will definitely have a look.

on a separate note am facing a weird issue....sometimes I see spans generated by zipkin-instrumentation-request-promise being associated with the wrong parentId. The class implementing the requests is singleton. Take this example: call A is received by express, a new call (B) is received by express shortly after, call B is processed quicker than call A (meaning request-promise instantiation happens before call A), call A eventually also instantiates request-promise. In this situation the parentId of the last span for call A seems to pick up the one generated by express during call B. The result is, in Zipkin UI I can see a span for call A under call B... not sure if someone else has experienced this issue before? I am looking at the Zipkin request promise code to figure out what's going on and if am doing something wrong. But perhaps this is known behaviour already and it's just my silly code I need to fix!!

Adrian Cole
@adriancole
lol not the 10:50pm sort of question
I won't allow my brain to rev to this amount of RPMs :D
one thing I'd say is we've recently refactored the zipkin-js tests to allow more coherent scenarios like you mention.. I think we have some promise test there (at the bottom) have a look and try to break in a test. tomorrow I will try to process what you said.
@stanltam_twitter I don't know maybe try for now. we are using the armeria client underneath and I'm not sure it honors javax.net or not. most folks in armeria are same time zone as me, but if it doesn't workyou can check armeria docs or slack https://line-armeria.slack.com/
we can try to document what works after you find what does
mstaalesen
@mstaalesen
@adriancole so, it seems that the query Zipkin sends to Elastic fetches the last X spans within given timeframe, and then sorts on those
I'm not sure why, but I expected it to be showing me e.g. the 10 longest spans (if that was how i wanted them sorted) in the given timeframe
so basically: search everything within the timeframe, and just return the 10 longest
But thats maybe not a normal usecase for Zipkin?
does the users often have a traceid that they look up?
Stanleytam
@stanltam_twitter
@adriancole , I am in the same timezone as you, let me have a try tmr :D. Thank you for your reply
Gabriel Pallotta
@gabrielpallotta
Hey! I have a question: I noticed that when using Brave RabbitMQ instrumentation, it creates spans with name "publish" and "
next-message". This is polluting my visualization on Zipkin, is there any way to disable it?
Luis Weir
@luisw19
@adriancole definitely not a 10:50pm question! that's time for the pub!. I'll look at the zipkin-js tests for clues. Also collecting debug data so I can provide more details on where exactly is the issue.
isermaniac
@isermaniac

Hi All,

I'm having an issue getting Zipkin (latest) to work with a clustered ElasticSearch (6.8.1) backend. I'll explain the simplest circumstances I've needed to generate the problem and hopefully y'all can shed some light.

An app sends traces to the Zipkin server which passes them to the ES cluster as its backend.
For simplicity, I've hardcoded one particular ES instance in the cluster (though I also have a configuration which uses a load balancer).

When I use a standalone ES instance, everything works as expected. I can examine the traces in the Zipkin UI and in ElasticSearch (which I can see using Kibana).

When I use an ES cluster, the traces go through Zipkin and I can examine the results in ElasticSearch. However, the Zipkin UI says "ERROR: cannot load service names: server error (Internal Server Error)" and no traces are visible. I can try to check the API using curl x.x.x.x:9411/api/v2/services but I get a 500 Internal Server Error.

How can I get the UI to behave?