openzipkin-attic / zipkin-azure Goto Github PK
View Code? Open in Web Editor NEWReporters and collectors for use in Azure
License: Apache License 2.0
Reporters and collectors for use in Azure
License: Apache License 2.0
After a while came back to this and trying to run - in the past I used different parameters. Word by word, I followed the instructions but evenhub module does not get loaded. I even put debug outputs in the paths of code but they are never called.
Here is my tmp:
total 104936
drwxr-xr-x 4 aliostad staff 136B 21 Jun 22:47 .
drwxr-xr-x 7 aliostad staff 238B 21 Jun 22:47 ..
drwxr-xr-x 6 aliostad staff 204B 21 Jun 22:47 eventhub
-rw-r--r-- 1 aliostad staff 51M 21 Jun 22:47 zipkin.jar
And here is inside my eventhub:
total 8
drwxr-xr-x 6 aliostad staff 204B 21 Jun 22:47 .
drwxr-xr-x 4 aliostad staff 136B 21 Jun 22:47 ..
drwxr-xr-x 5 aliostad staff 170B 21 Jun 22:37 META-INF
drwxr-xr-x 11 aliostad staff 374B 21 Jun 22:37 lib
drwxr-xr-x 3 aliostad staff 102B 21 Jun 22:29 zipkin
-rw-r--r-- 1 aliostad staff 559B 21 Jun 22:37 zipkin-server-eventhub.yml
And I cd to tmp
and run below:
EVENTHUB_CONNECTION_STRING=blah
EVENTHUB_STORAGE_CONNECTION_STRING=blah
java -Dloader.path=eventhub -Dspring.profiles.active=eventhub -cp zipkin.jar org.springframework.boot.loader.PropertiesLauncher
And here is output from the zipkin server:
********
** **
* *
** **
** **
** **
** **
********
****
****
**** ****
****** **** ***
****************************************************************************
******* **** ***
**** ****
**
**
***** ** ***** ** ** ** ** **
** ** ** * *** ** **** **
** ** ***** **** ** ** ***
****** ** ** ** ** ** ** **
:: Powered by Spring Boot :: (v1.5.4.RELEASE)
2017-06-21 22:54:57.477 INFO 41640 --- [ main] zipkin.server.ZipkinServer : Starting ZipkinServer on AliKheyrollahis-MacBook-Pro.local with PID 41640 (/Users/aliostad/zipkin-eventhub-pod/tmp/zipkin.jar started by aliostad in /Users/aliostad/zipkin-eventhub-pod/tmp)
2017-06-21 22:54:57.485 INFO 41640 --- [ main] zipkin.server.ZipkinServer : The following profiles are active: shared,eventhub
2017-06-21 22:54:57.601 INFO 41640 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5e3a8624: startup date [Wed Jun 21 22:54:57 BST 2017]; root of context hierarchy
getMatchOutcome
2017-06-21 22:54:59.410 INFO 41640 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'characterEncodingFilter' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration; factoryMethodName=characterEncodingFilter; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/HttpEncodingAutoConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=zipkin.autoconfigure.ui.ZipkinUiAutoConfiguration; factoryMethodName=characterEncodingFilter; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [zipkin/autoconfigure/ui/ZipkinUiAutoConfiguration.class]]
2017-06-21 22:54:59.874 INFO 41640 --- [ main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2017-06-21 22:55:01.058 INFO 41640 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 9411 (http)
2017-06-21 22:55:01.091 INFO 41640 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2017-06-21 22:55:01.095 INFO 41640 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.15
2017-06-21 22:55:01.283 INFO 41640 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2017-06-21 22:55:01.283 INFO 41640 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3688 ms
2017-06-21 22:55:01.858 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-06-21 22:55:01.866 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'metricsFilter' to: [/*]
2017-06-21 22:55:01.866 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-06-21 22:55:01.866 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-06-21 22:55:01.867 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2017-06-21 22:55:01.867 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'webRequestLoggingFilter' to: [/*]
2017-06-21 22:55:01.868 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'applicationContextIdFilter' to: [/*]
2017-06-21 22:55:01.869 INFO 41640 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-06-21 22:55:02.616 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5e3a8624: startup date [Wed Jun 21 22:54:57 BST 2017]; root of context hierarchy
2017-06-21 22:55:02.766 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/dependencies],methods=[GET],produces=[application/json]}" onto public byte[] zipkin.server.ZipkinQueryApiV1.getDependencies(long,java.lang.Long)
2017-06-21 22:55:02.769 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/services],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.util.List<java.lang.String>> zipkin.server.ZipkinQueryApiV1.getServiceNames()
2017-06-21 22:55:02.770 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/spans],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.util.List<java.lang.String>> zipkin.server.ZipkinQueryApiV1.getSpanNames(java.lang.String)
2017-06-21 22:55:02.771 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/traces],methods=[GET],produces=[application/json]}" onto public java.lang.String zipkin.server.ZipkinQueryApiV1.getTraces(java.lang.String,java.lang.String,java.lang.String,java.lang.Long,java.lang.Long,java.lang.Long,java.lang.Long,java.lang.Integer)
2017-06-21 22:55:02.771 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/trace/{traceIdHex}],methods=[GET],produces=[application/json]}" onto public java.lang.String zipkin.server.ZipkinQueryApiV1.getTrace(java.lang.String,org.springframework.web.context.request.WebRequest)
2017-06-21 22:55:02.773 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/spans],methods=[POST]}" onto public org.springframework.util.concurrent.ListenableFuture<org.springframework.http.ResponseEntity<?>> zipkin.server.ZipkinHttpCollector.uploadSpansJson(java.lang.String,byte[])
2017-06-21 22:55:02.774 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/v1/spans],methods=[POST],consumes=[application/x-thrift]}" onto public org.springframework.util.concurrent.ListenableFuture<org.springframework.http.ResponseEntity<?>> zipkin.server.ZipkinHttpCollector.uploadSpansThrift(java.lang.String,byte[])
2017-06-21 22:55:02.781 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-06-21 22:55:02.782 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-06-21 22:55:02.785 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/prometheus],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> zipkin.autoconfigure.metrics.PrometheusMetricsAutoConfiguration.prometheusMetrics()
2017-06-21 22:55:02.787 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/config.json],methods=[GET],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<zipkin.autoconfigure.ui.ZipkinUiProperties> zipkin.autoconfigure.ui.ZipkinUiAutoConfiguration.serveUiConfig()
2017-06-21 22:55:02.787 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/index.html],methods=[GET]}" onto public org.springframework.http.ResponseEntity<org.springframework.core.io.Resource> zipkin.autoconfigure.ui.ZipkinUiAutoConfiguration.serveIndex()
2017-06-21 22:55:02.788 INFO 41640 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/ || /traces/{id} || /dependency],methods=[GET]}" onto public org.springframework.web.servlet.ModelAndView zipkin.autoconfigure.ui.ZipkinUiAutoConfiguration.forwardUiEndpoints(org.springframework.ui.ModelMap)
2017-06-21 22:55:02.845 INFO 41640 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-06-21 22:55:02.846 INFO 41640 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-06-21 22:55:03.154 INFO 41640 --- [ main] c.d.driver.core.GuavaCompatibility : Detected Guava >= 19 in the classpath, using modern compatibility layer
2017-06-21 22:55:03.718 INFO 41640 --- [ main] com.datastax.driver.core.ClockFactory : Using native clock to generate timestamps.
2017-06-21 22:55:04.569 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/info || /info.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.570 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/mappings || /mappings.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.571 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/auditevents || /auditevents.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public org.springframework.http.ResponseEntity<?> org.springframework.boot.actuate.endpoint.mvc.AuditEventsMvcEndpoint.findByPrincipalAndAfterAndType(java.lang.String,java.util.Date,java.lang.String)
2017-06-21 22:55:04.575 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/env/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)
2017-06-21 22:55:04.575 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/env || /env.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.576 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/health || /health.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(javax.servlet.http.HttpServletRequest,java.security.Principal)
2017-06-21 22:55:04.577 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/heapdump || /heapdump.json],methods=[GET],produces=[application/octet-stream]}" onto public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException
2017-06-21 22:55:04.578 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/trace || /trace.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.578 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/beans || /beans.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.580 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/loggers/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.get(java.lang.String)
2017-06-21 22:55:04.581 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/loggers/{name:.*}],methods=[POST],consumes=[application/vnd.spring-boot.actuator.v1+json || application/json],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.set(java.lang.String,java.util.Map<java.lang.String, java.lang.String>)
2017-06-21 22:55:04.581 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/loggers || /loggers.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.582 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/dump || /dump.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.582 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/autoconfig || /autoconfig.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.583 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/configprops || /configprops.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.584 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/metrics/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
2017-06-21 22:55:04.584 INFO 41640 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/metrics || /metrics.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-06-21 22:55:04.787 INFO 41640 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-06-21 22:55:04.800 INFO 41640 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0
2017-06-21 22:55:05.053 INFO 41640 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9411 (http)
2017-06-21 22:55:05.063 INFO 41640 --- [ main] zipkin.server.ZipkinServer : Started ZipkinServer in 8.62 seconds (JVM running for 9.731)
It should be possible to create a quick start section of the README now that we have published the project. This can be like the zipkin upstream one, where the "lastest" version is used for both zipkin and the eventhub module.
# get the zipkin jar
$ wget -O zipkin.jar 'https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec'
# get the eventhub module jar
$ wget -O zipkin-eventhub.jar 'https://search.maven.org/remote_content?g=io.zipkin.azure&a=zipkin-autoconfigure-collector-eventhub&v=LATEST&c=module'
... do other things
here's the example quick start from zipkin https://github.com/openzipkin/zipkin#quick-start
As part of the move to the Apache Software Foundation this repository will transfer ownership to apache
and name to incubator-zipkin-azure
.
This code looks like a bug to me but not sure the intended purpose hence asking:
countSinceCheckpoint += buffer.size();
So let's say we have 5 spans in first message and 6 in the second, my countSinceCheckpoint
will be 16 (5+11) rather than 11. I think just comparing with buffer.size()
should be enough.
I can see that we have a property name
which is actually consumerGroupName
. That is confusing for anyone familiar with EventHub. Also processorHost
is not the host anymore, it is merely the name of the processorHost (i.e. processorHostName
) ... frankly do not agree with these changes.
I agree that for configuration, naming should be short but not sacrificing self-explanatory codes which is important in the upkeep of the .
To have the best of the both worlds, I suggest having shorter duplicate properties that can read and then populate the longer more meaningful names if they are empty.
[2 cents]
Hi,
Is it possible to add a feature to an event hub sender?
Indeed, I would like to use zipkin-azure on a Spring Boot application and to send my logs to an Azure EventHub.
To do that, I need to have a Hub Sender, but I can't find it :)
Thanks for your help!
Damien
I suspect there will be some code impact. We are currently in a 0.X release, but azure-eventhubs-eph 2.0.0 was recently released.
Folks have been expressing interest in storage, particularly as while apps can transmit to EventHub, eventually that data needs to land somewhere :)
Ex. DocDB https://groups.google.com/d/msg/zipkin-dev/bTBKUEjLtKg/yLbvVkFYAQAJ
or possibly table service @kevinbayes
There are likely so pros and cons to discuss here
LazyRegisterEventProcessor
is actually an LazyRegisterEventProcessorHost. There is a big difference between the host and processor. I suggest renaming. to LazyRegisterEventProcessorHost
.
0.1.0 is out, but hasn't been synced to either jcenter (or later maven central)
I retried the request in bintray to host on jcenter under the io.zipkin.azure group id
https://bintray.com/openzipkin/maven/zipkin-azure
will ping back tomorrow with an update
Ideally, in #5, there will be a way to inherit connection string configuration from the local host. Regardless, it should be obvious what every property is, and how to get it. Most important are the required properties for the eventhub and storage connection strings.
Right now, there's no link to the format of the eventhub or storage connection strings. Neither is there a description of how to get these values (ex via a UI or some cli tool). This makes it hard to get started, as you have to learn something. Ideally people encountering EventHub for the first time are able to get started without even thinking.
Here's an example block for google, which includes a section on how to enroll in an account for their zipkin collector. https://medium.com/google-cloud/distributed-tracing-spring-boot-microservices-with-stackdriver-trace-7fe42c6de3f3#.dl3mxikep
There's probably something we can do to make it obvious what you need and how to succeed. Similar to the google or amazon experience, we don't want users to have to think too much (nor do we want other zipkin developers to have no idea how to test this for lack of experience)
Right now, there's a long description of creating a properties file which includes all but one property. Each of these are in long form, like zipkin.collector.eventhub.connection-string
. To get a similar experience with other services, we'd ideally have one or two required properties in short form (like EVENTHUB_CONNECTION_STRING
, taking anything we can from host installed defaults (if exist)
The following are good examples of where a short env variable is available, which allows people to literally hand type a commandline in as needed!
ES_AWS_DOMAIN
to use hosted storage.PROJECT_ID
We've received positive feedback on the code from @kevinbayes (whoot), but both Kevin and Praveen (barpr01_twitter on gitter.. not sure his github) mentioned there's work to do in getting started. Personally, I'm also finding the experience lacking, not just for build, but more importantly what to put into the blanks. Here are some important things I've cataloged, but feel free to add others.
cc @openzipkin/devops-tooling
Everytime I run the collector, I checkpoint some partitions without adding new spans - possibly pointing to the fact checkpointing is not working.
[created by mistake here https://github.com/openzipkin-attic/zipkin-csharp/issues/30]
There's a hard limit of 20K messages per namespace. This may limit a users ability to use this with larger infrastructure.
Here are some details about quotas / limits
https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-quotas
https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-what-is-event-hubs
Issue to discuss ongoing work in PR: #27
The main idea is to allow to report and store Zipkin traces in the format Application Insights recognize so all the power of Application Insights Analytics engine, alerting and proactive detection can be used for those traces.
Also allows to view data collected by Application Insights SDK in Zipkin UI.
Creating this as a child of #8
@praveenbarli has something working.
Some things to consider and ideally discuss before an implementation.
Zipkin backend model and queries. There's no formal specification but @adriancole has mentioned
As CosmosDB has multiple APIs (key-value, document and graph) it would be interesting to know what makes most sense for this backend and have a discussion on the model. Ideally we'd be able to make sure it's cost efficient at a good performance .
See pricing https://azure.microsoft.com/en-us/pricing/details/cosmos-db/
Perhaps data retention could also be discussed? What's typically used?
Note that if Event Hubs is used as a queue before data lands in storage, that will impose some limits on the throughput (EH is limited to 20K rps).
Since Cosmos DB can handle way more than that, perhaps it would make sense to be able to push directly without going through EH?
In other zipkin projects, the local development story includes how to build and run the project from source.
Ex.
https://github.com/openzipkin/zipkin-dependencies#building-locally
https://github.com/openzipkin/zipkin/blob/master/zipkin-server/README.md#building-locally
Right now, our instructions lead people to a common error, which is downloading the server jar into the same directory as the module (which fails to run). We need to correct that as it is clearly possible to use a script or copy/paste instructions to avoid this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.