> The biggest advantage of ALS, is replacing the physical local access log > file. So you have metrics, topology(dependency), and logs in one package of > data.
If we also record the metrics and tracing data with the physical local access log, can we achieve the same effect? > If you want to discuss most ALS in APISIX, I am glad to help with the > design and integration solution. yes, I want to discuss more details. Thanks, Ming Wen, Apache APISIX PMC Chair Twitter: _WenMing wei jin <k...@apache.org> 于2021年3月22日周一 下午3:58写道: > Zexuan Luo <spacewan...@apache.org> 于2021年3月21日周日 下午2:18写道: > > > I am not familiar with https://github.com/apache/skywalking-satellite. > > Can we use this project to convert plain HTTP to GRPC? > > > Skywalking satellite is usually deployed as a sidecar. It can convert > APISIX gateway metrics to other data formats, do some preprocessing, and > even change the data collection method from pull to push. > > However, the original prometheus metrics are still generated by APISIX, > which is not suitable for URI-level statistics. > > wei jin <k...@apache.org> 于2021年3月22日周一 下午3:57写道: > > > Zexuan Luo <spacewan...@apache.org> 于2021年3月21日周日 下午2:18写道: > > > > > I am not familiar with https://github.com/apache/skywalking-satellite. > > > Can we use this project to convert plain HTTP to GRPC? > > > > > > Skywalking satellite is usually deployed as a sidecar. It can convert > > APISIX gateway metrics to other data formats, do some preprocessing, and > > even change the data collection method from pull to push. > > > > However, the original prometheus metrics are still generated by APISIX, > > which is not suitable for URI-level statistics. > > > > > > YuanSheng Wang <membp...@apache.org> 于2021年3月21日周日 下午10:08写道: > > > >> For APISIX, gRPC calls need to be supported. > >> > >> Either subrequest or pure Lua mode is ok, this feature is also very > useful > >> in other cases. > >> > >> We can use `subrequest` to implement the first version, this way seems > >> simpler. > >> > >> > >> On Sun, Mar 21, 2021 at 2:34 PM Zexuan Luo <spacewan...@apache.org> > >> wrote: > >> > >> > Another solution is writing a Lua GRPC library with > >> > https://github.com/tokers/lua-resty-http2 > >> > https://github.com/starwing/lua-protobuf > >> > > >> > Zexuan Luo <spacewan...@apache.org> 于2021年3月21日周日 下午2:18写道: > >> > > > >> > > I am not familiar with > https://github.com/apache/skywalking-satellite > >> . > >> > > Can we use this project to convert plain HTTP to GRPC? > >> > > > >> > > Sheng Wu <wu.sheng.841...@gmail.com> 于2021年3月21日周日 下午1:59写道: > >> > > > > >> > > > Oh, you mean that. > >> > > > SkyWalking natively provides HTTP APIs for nearly all protocols, > >> even > >> > if > >> > > > not, we are happy to add. There is no block between APISIX and > >> > SkyWalking. > >> > > > The point to discuss the gRPC service here is about the > performance, > >> > > > including proto's no field name in transmission, enum as int, > small > >> > int as > >> > > > small, and especially streaming. > >> > > > If you want to implement ALS, then this is super important to > >> provide > >> > > > better performance. > >> > > > > >> > > > Sheng Wu 吴晟 > >> > > > Twitter, wusheng1108 > >> > > > > >> > > > > >> > > > Chao Zhang <zchao1...@gmail.com> 于2021年3月21日周日 下午1:55写道: > >> > > > > >> > > > > It’s not so easy to use gRPC in APISIX as the lack of ecosystem, > >> but > >> > with > >> > > > > the help of gRPC gateway ( > >> > https://github.com/grpc-ecosystem/grpc-gateway). > >> > > > > We can use the restful APIs to talk with gRPC endpoints. Just > like > >> > the way > >> > > > > APISIX communicates with ETCD V3 APIs. > >> > > > > > >> > > > > Chao Zhang > >> > > > > https://github.com/tokers > >> > > > > > >> > > > > On March 21, 2021 at 1:53:41 PM, Sheng Wu ( > >> wu.sheng.841...@gmail.com > >> > ) > >> > > > > wrote: > >> > > > > > >> > > > > Chao Zhang <zchao1...@gmail.com> 于2021年3月21日周日 下午1:46写道: > >> > > > > > >> > > > > > Does the gRPC service enables grpc gateway? If so, it’s easy > for > >> > APISIX > >> > > > > to > >> > > > > > integrate it? > >> > > > > > > >> > > > > > >> > > > > What is the relationship with grpc gateway? > >> > > > > > >> > > > > > >> > > > > > >> > > > > > > >> > > > > > Zexuan Luo <spacewan...@apache.org>于2021年3月21日 周日13:35写道: > >> > > > > > > >> > > > > > > Another solution is wrapping the C++ implementation of the > >> GPRC > >> > > > > > > client. But it requires you to prebuild the proto file into > >> *.c > >> > source > >> > > > > > > and can only be distributed as part of apisix-openresty. > >> > > > > > > > >> > > > > > > Zexuan Luo <spacewan...@apache.org> 于2021年3月21日周日 下午1:25写道: > >> > > > > > > > > >> > > > > > > > AFAIK, there is not library support making GPRC directly. > >> > > > > > > > One solution is subrequest + http2grpc, but this way > doesn't > >> > support > >> > > > > > > > stream mode. So it is not a good solution. > >> > > > > > > > > >> > > > > > > > YuanSheng Wang <membp...@apache.org> 于2021年3月20日周六 > >> 下午10:53写道: > >> > > > > > > > > > >> > > > > > > > > LGTM > >> > > > > > > > > > >> > > > > > > > > > The biggest advantage of ALS, is replacing the > physical > >> > local > >> > > > > > access > >> > > > > > > log > >> > > > > > > > > file. > >> > > > > > > > > > >> > > > > > > > > The APISIX has a plugin `http-logger`, I think APISIX is > >> > easy to > >> > > > > > report > >> > > > > > > > > those data to SkyWalking. > >> > > > > > > > > > >> > > > > > > > > And I think we can try to use `gRPC` to report data. > What > >> do > >> > > > > > > > > you think? @ming @spacewander > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > On Fri, Mar 19, 2021 at 11:43 PM Ming Wen < > >> > wenm...@apache.org> > >> > > > > > wrote: > >> > > > > > > > > > >> > > > > > > > > > Cool, I think we can try ALS > >> > > > > > > > > > > >> > > > > > > > > > Sheng Wu <wu.sheng.841...@gmail.com>于2021年3月19日 > >> > 周五下午11:21写道: > >> > > > > > > > > > > >> > > > > > > > > > > We have run the Envoy ALS performance test a long > time > >> > ago(2 > >> > > > > > > years, I > >> > > > > > > > > > > think). Sadly, no public blog. > >> > > > > > > > > > > It could easily support 10k-20k/s traffic with a > very > >> > low load > >> > > > > to > >> > > > > > > the > >> > > > > > > > > > > proxy. But, it is based on gRPC, so basically, it > >> > doesn't send > >> > > > > > many > >> > > > > > > > > > things > >> > > > > > > > > > > out, mostly only flags and latency value. > >> > > > > > > > > > > APISIX is using HTTP1.1 mostly, so, this could be > >> > different. > >> > > > > > > > > > > Also, at the same time, besides the ALS, we have a > >> > chance to > >> > > > > > > provide a > >> > > > > > > > > > push > >> > > > > > > > > > > mode LUA SDK in skywalking meter format. It could > >> provide > >> > > > > > URI-level > >> > > > > > > > > > metrics > >> > > > > > > > > > > at reasonable resource cost, especially it works > with > >> > > > > SkyWalking > >> > > > > > > > > > satellite, > >> > > > > > > > > > > which could leverage local disk to cache the data. > >> > > > > > > > > > > The biggest advantage of ALS, is replacing the > >> physical > >> > local > >> > > > > > > access log > >> > > > > > > > > > > file. So you have metrics, topology(dependency), and > >> > logs in > >> > > > > one > >> > > > > > > package > >> > > > > > > > > > of > >> > > > > > > > > > > data. > >> > > > > > > > > > > > >> > > > > > > > > > > If you want to discuss most ALS in APISIX, I am glad > >> to > >> > help > >> > > > > with > >> > > > > > > the > >> > > > > > > > > > > design and integration solution. > >> > > > > > > > > > > > >> > > > > > > > > > > Sheng Wu 吴晟 > >> > > > > > > > > > > Twitter, wusheng1108 > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > Ming Wen <wenm...@apache.org> 于2021年3月19日周五 > >> 下午11:08写道: > >> > > > > > > > > > > > >> > > > > > > > > > > > yes, Prometheus is not designed for URI-level > >> metrics. > >> > > > > > > > > > > > > >> > > > > > > > > > > > Does envoy ALS will send too much data and cause > >> > performance > >> > > > > > > problems? > >> > > > > > > > > > > > > >> > > > > > > > > > > > And I know skywalking will supoort envoy WASM, is > >> there > >> > > > > > anything > >> > > > > > > apisix > >> > > > > > > > > > > can > >> > > > > > > > > > > > learn from this? > >> > > > > > > > > > > > > >> > > > > > > > > > > > Sheng Wu <wu.sheng.841...@gmail.com>于2021年3月19日 > >> > 周五下午8:11写道: > >> > > > > > > > > > > > > >> > > > > > > > > > > > > Hi APISIX & SkyWalking community > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > I was discussing with Wei Jin about using > >> Prometheus > >> > SDK > >> > > > > to > >> > > > > > > monitor > >> > > > > > > > > > > > > URI-level metrics of APISIX/OpenResty. > >> > > > > > > > > > > > > Wei received feedback that way of using > Prometheus > >> > SDK > >> > > > > > causing > >> > > > > > > > > > > > > a significant performance impact. From the > >> > observability > >> > > > > > > perspective, > >> > > > > > > > > > > > Prom > >> > > > > > > > > > > > > is not good at gathering a large scale of > >> entities' > >> > > > > metrics > >> > > > > > > due to > >> > > > > > > > > > its > >> > > > > > > > > > > > > local cache and pull mode. > >> > > > > > > > > > > > > Instead, we should consider providing a push way > >> like > >> > > > > Envoy > >> > > > > > > ALS[1] > >> > > > > > > > > > and > >> > > > > > > > > > > > > Metrics Service[2] did(it does through gRPC, and > >> > > > > SkyWalking > >> > > > > > > > > > recommended > >> > > > > > > > > > > > in > >> > > > > > > > > > > > > the prod environment. > >> > > > > > > > > > > > > If this is accepted and agreed by the APISIX > >> > community, we > >> > > > > > > could look > >> > > > > > > > > > > for > >> > > > > > > > > > > > > implementation in the skywalking-nginx-lua[3] > >> repo to > >> > > > > collect > >> > > > > > > > > > > > metrics(meter > >> > > > > > > > > > > > > in SkyWalking) and use HTTP(in SkyWalking native > >> > meter > >> > > > > > format) > >> > > > > > > to > >> > > > > > > > > > > report > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > This mail has been sent to > dev@apisix.apache.org > >> and > >> > > > > > > > > > > > > d...@skywalking.apache.org. Please reply all > when > >> you > >> > > > > discuss > >> > > > > > > in the > >> > > > > > > > > > > > > thread. > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > [1] > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > >> > https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/accesslog/v2/als.proto > >> > > > > > > > > > > > > [2] > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > >> > https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto > >> > > > > > > > > > > > > [3] > >> https://github.com/apache/skywalking-nginx-lua > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > Sheng Wu 吴晟 > >> > > > > > > > > > > > > Twitter, wusheng1108 > >> > > > > > > > > > > > > > >> > > > > > > > > > > > -- > >> > > > > > > > > > > > Thanks, > >> > > > > > > > > > > > Ming Wen, Apache APISIX PMC Chair > >> > > > > > > > > > > > Twitter: _WenMing > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > -- > >> > > > > > > > > > Thanks, > >> > > > > > > > > > Ming Wen, Apache APISIX PMC Chair > >> > > > > > > > > > Twitter: _WenMing > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > -- > >> > > > > > > > > > >> > > > > > > > > *MembPhis* > >> > > > > > > > > My GitHub: https://github.com/membphis > >> > > > > > > > > Apache APISIX: https://github.com/apache/apisix > >> > > > > > > > >> > > > > > -- > >> > > > > > Best regards > >> > > > > > Alex Zhang > >> > > > > > > >> > > > > > https://github.com/tokers > >> > > > > > https://github.com/upyun/upyun-resty > >> > > > > > > >> > > > > > >> > > > > > >> > > >> > >> > >> -- > >> > >> *MembPhis* > >> My GitHub: https://github.com/membphis > >> Apache APISIX: https://github.com/apache/apisix > >> > > >