Re: Append uniqueid to a http request at varnish
Hi Uday, I'm not sure what went wrong, but this Dockerfile works: from centos:7 RUN \ set -ex; \ ulimit -n 10240; \ yum install -y make automake pkg-config libtool python-docutils autoconf-archive uuid-devel epel-release python-docutils; \ curl -s https://packagecloud.io/install/repositories/varnishcache/varnish5/script.rpm.sh | bash; \ yum install -y varnish-devel; \ curl -O https://raw.githubusercontent.com/varnish/toolbox/master/install-vmod/install-vmod; \ chmod +x install-vmod ;\ ./install-vmod https://github.com/otto-de/libvmod-uuid/archive/refs/heads/5.x.tar.gz Also, I know you have heard it before, but Varnish 5 is ancient, please don't use it and upgrade to something more recent, either 7.5 or to the 6.0 LTS. Let us know how it goes. -- Guillaume Quintard On Tue, Apr 30, 2024 at 1:07 AM Uday Kumar wrote: > hello Guillaume, > > I am trying to install vmod_uuid on my centOS 7 machine > > Resource i used: > https://github.com/otto-de/libvmod-uuid/blob/5.x/INSTALL.rst > > varnish version: 5.2.1 > > I am getting below errors while running *make *command > > make[1]: Entering directory `/usr/local/src/libvmod-uuid' > Making all in src > make[2]: Entering directory `/usr/local/src/libvmod-uuid/src' > CC vmod_uuid.lo > In file included from vmod_uuid.c:35:0: > vcc_if.h:11:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:11:31: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid(VRT_CTX, struct vmod_priv *); >^ > vcc_if.h:12:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v1(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:12:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v1(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:13:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v3(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vcc_if.h:13:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v3(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vcc_if.h:15:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v4(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:15:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v4(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:16:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v5(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vcc_if.h:16:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v5(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vmod_uuid.c:48:17: error: expected ‘)’ before ‘int’ > mkuuid(VRT_CTX, int utype, uuid_t *uuid, const char *str, va_list ap) > ^ > vmod_uuid.c:76:1: error: unknown type name ‘VCL_STRING’ > _uuid(VRT_CTX, uuid_t *uuid, int utype, ...) > ^ > vmod_uuid.c:76:16: error: expected ‘)’ before ‘uuid_t’ > _uuid(VRT_CTX, uuid_t *uuid, int utype, ...) > ^ > vmod_uuid.c:104:21: error: expected ‘)’ before ‘void’ > free_uuids(VRT_CTX, void *priv) > ^ > vmod_uuid.c:116:39: error: array type has incomplete element type > static const struct vmod_priv_methods uuid_priv_task_methods[1] = {{ >^ > vmod_uuid.c:117:3: error: field name not in record or union initializer >.magic = VMOD_PRIV_METHODS_MAGIC, >^ > vmod_uuid.c:117:3: error: (near initialization for > ‘uuid_priv_task_methods’) > vmod_uuid.c:117:12: error: ‘VMOD_PRIV_METHODS_MAGIC’ undeclared here (not > in a function) >.magic = VMOD_PRIV_METHODS_MAGIC, > ^ > vmod_uuid.c:118:3: error: field name not in record or union initializer >.type = "vmod_uuid_priv_task", >^ > vmod_uuid.c:118:3: error: (near initialization for > ‘uuid_priv_task_methods’) > vmod_uuid.c:119:3: error: field name not in record or union initializer >.fini = free_uuids >^ > vmod_uuid.c:119:3: error: (near initialization for > ‘uuid_priv_task_methods’) > vmod_uuid.c:119:11: error: ‘free_uuids’ undeclared here (not in a function) >.fini = free_uuids >^ > vmod_uuid.c:123:20: error: expected ‘)’ before ‘struct’ > get_uuids(VRT_CTX, struct vmod_priv *priv, uuid_t **uuid_ns) > ^ > vmod_uuid.c:163:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:164:23: error: expected ‘)’ before ‘struct’ > vmod_uuid_v1(VRT_CTX, struct vmod_priv *priv) >^ > vmod_uuid.c:172:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:173:23: error: expected ‘)’ before ‘struct’ > vmod_uuid_v3(VRT_CTX, struct vmod_priv *priv, VCL_STRING ns, VCL_STRING > name) >^ > vmod_uuid.c:182:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:183:23: error: expected ‘)’ before ‘struct’ > vmod_uuid_v4(VRT_CTX, struct vmod_priv *priv) >
Re: Append uniqueid to a http request at varnish
Hello, Am I missing anything here? On Tue, Apr 30, 2024, 13:37 Uday Kumar wrote: > hello Guillaume, > > I am trying to install vmod_uuid on my centOS 7 machine > > Resource i used: > https://github.com/otto-de/libvmod-uuid/blob/5.x/INSTALL.rst > > varnish version: 5.2.1 > > I am getting below errors while running *make *command > > make[1]: Entering directory `/usr/local/src/libvmod-uuid' > Making all in src > make[2]: Entering directory `/usr/local/src/libvmod-uuid/src' > CC vmod_uuid.lo > In file included from vmod_uuid.c:35:0: > vcc_if.h:11:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:11:31: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid(VRT_CTX, struct vmod_priv *); >^ > vcc_if.h:12:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v1(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:12:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v1(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:13:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v3(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vcc_if.h:13:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v3(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vcc_if.h:15:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v4(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:15:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v4(VRT_CTX, struct vmod_priv *); > ^ > vcc_if.h:16:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING vmod_uuid_v5(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vcc_if.h:16:34: error: expected ‘)’ before ‘struct’ > VCL_STRING vmod_uuid_v5(VRT_CTX, struct vmod_priv *, VCL_STRING, > ^ > vmod_uuid.c:48:17: error: expected ‘)’ before ‘int’ > mkuuid(VRT_CTX, int utype, uuid_t *uuid, const char *str, va_list ap) > ^ > vmod_uuid.c:76:1: error: unknown type name ‘VCL_STRING’ > _uuid(VRT_CTX, uuid_t *uuid, int utype, ...) > ^ > vmod_uuid.c:76:16: error: expected ‘)’ before ‘uuid_t’ > _uuid(VRT_CTX, uuid_t *uuid, int utype, ...) > ^ > vmod_uuid.c:104:21: error: expected ‘)’ before ‘void’ > free_uuids(VRT_CTX, void *priv) > ^ > vmod_uuid.c:116:39: error: array type has incomplete element type > static const struct vmod_priv_methods uuid_priv_task_methods[1] = {{ >^ > vmod_uuid.c:117:3: error: field name not in record or union initializer >.magic = VMOD_PRIV_METHODS_MAGIC, >^ > vmod_uuid.c:117:3: error: (near initialization for > ‘uuid_priv_task_methods’) > vmod_uuid.c:117:12: error: ‘VMOD_PRIV_METHODS_MAGIC’ undeclared here (not > in a function) >.magic = VMOD_PRIV_METHODS_MAGIC, > ^ > vmod_uuid.c:118:3: error: field name not in record or union initializer >.type = "vmod_uuid_priv_task", >^ > vmod_uuid.c:118:3: error: (near initialization for > ‘uuid_priv_task_methods’) > vmod_uuid.c:119:3: error: field name not in record or union initializer >.fini = free_uuids >^ > vmod_uuid.c:119:3: error: (near initialization for > ‘uuid_priv_task_methods’) > vmod_uuid.c:119:11: error: ‘free_uuids’ undeclared here (not in a function) >.fini = free_uuids >^ > vmod_uuid.c:123:20: error: expected ‘)’ before ‘struct’ > get_uuids(VRT_CTX, struct vmod_priv *priv, uuid_t **uuid_ns) > ^ > vmod_uuid.c:163:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:164:23: error: expected ‘)’ before ‘struct’ > vmod_uuid_v1(VRT_CTX, struct vmod_priv *priv) >^ > vmod_uuid.c:172:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:173:23: error: expected ‘)’ before ‘struct’ > vmod_uuid_v3(VRT_CTX, struct vmod_priv *priv, VCL_STRING ns, VCL_STRING > name) >^ > vmod_uuid.c:182:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:183:23: error: expected ‘)’ before ‘struct’ > vmod_uuid_v4(VRT_CTX, struct vmod_priv *priv) >^ > vmod_uuid.c:191:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:192:23: error: expected ‘)’ before ‘struct’ > vmod_uuid_v5(VRT_CTX, struct vmod_priv *priv, VCL_STRING ns, VCL_STRING > name) >^ > vmod_uuid.c:201:1: error: unknown type name ‘VCL_STRING’ > VCL_STRING > ^ > vmod_uuid.c:202:20: error: expected ‘)’ before ‘struct’ > vmod_uuid(VRT_CTX, struct vmod_priv *priv) > ^ > vmod_uuid.c:116:39: error: ‘uuid_priv_task_methods’ defined but not used > [-Werror=unused-variable] > static const struct vmod_priv_methods uuid_priv_task_methods[1] = {{ >^ > cc1: all warnings being treated as errors > make[2]: ***
Re: Append uniqueid to a http request at varnish
hello Guillaume, I am trying to install vmod_uuid on my centOS 7 machine Resource i used: https://github.com/otto-de/libvmod-uuid/blob/5.x/INSTALL.rst varnish version: 5.2.1 I am getting below errors while running *make *command make[1]: Entering directory `/usr/local/src/libvmod-uuid' Making all in src make[2]: Entering directory `/usr/local/src/libvmod-uuid/src' CC vmod_uuid.lo In file included from vmod_uuid.c:35:0: vcc_if.h:11:1: error: unknown type name ‘VCL_STRING’ VCL_STRING vmod_uuid(VRT_CTX, struct vmod_priv *); ^ vcc_if.h:11:31: error: expected ‘)’ before ‘struct’ VCL_STRING vmod_uuid(VRT_CTX, struct vmod_priv *); ^ vcc_if.h:12:1: error: unknown type name ‘VCL_STRING’ VCL_STRING vmod_uuid_v1(VRT_CTX, struct vmod_priv *); ^ vcc_if.h:12:34: error: expected ‘)’ before ‘struct’ VCL_STRING vmod_uuid_v1(VRT_CTX, struct vmod_priv *); ^ vcc_if.h:13:1: error: unknown type name ‘VCL_STRING’ VCL_STRING vmod_uuid_v3(VRT_CTX, struct vmod_priv *, VCL_STRING, ^ vcc_if.h:13:34: error: expected ‘)’ before ‘struct’ VCL_STRING vmod_uuid_v3(VRT_CTX, struct vmod_priv *, VCL_STRING, ^ vcc_if.h:15:1: error: unknown type name ‘VCL_STRING’ VCL_STRING vmod_uuid_v4(VRT_CTX, struct vmod_priv *); ^ vcc_if.h:15:34: error: expected ‘)’ before ‘struct’ VCL_STRING vmod_uuid_v4(VRT_CTX, struct vmod_priv *); ^ vcc_if.h:16:1: error: unknown type name ‘VCL_STRING’ VCL_STRING vmod_uuid_v5(VRT_CTX, struct vmod_priv *, VCL_STRING, ^ vcc_if.h:16:34: error: expected ‘)’ before ‘struct’ VCL_STRING vmod_uuid_v5(VRT_CTX, struct vmod_priv *, VCL_STRING, ^ vmod_uuid.c:48:17: error: expected ‘)’ before ‘int’ mkuuid(VRT_CTX, int utype, uuid_t *uuid, const char *str, va_list ap) ^ vmod_uuid.c:76:1: error: unknown type name ‘VCL_STRING’ _uuid(VRT_CTX, uuid_t *uuid, int utype, ...) ^ vmod_uuid.c:76:16: error: expected ‘)’ before ‘uuid_t’ _uuid(VRT_CTX, uuid_t *uuid, int utype, ...) ^ vmod_uuid.c:104:21: error: expected ‘)’ before ‘void’ free_uuids(VRT_CTX, void *priv) ^ vmod_uuid.c:116:39: error: array type has incomplete element type static const struct vmod_priv_methods uuid_priv_task_methods[1] = {{ ^ vmod_uuid.c:117:3: error: field name not in record or union initializer .magic = VMOD_PRIV_METHODS_MAGIC, ^ vmod_uuid.c:117:3: error: (near initialization for ‘uuid_priv_task_methods’) vmod_uuid.c:117:12: error: ‘VMOD_PRIV_METHODS_MAGIC’ undeclared here (not in a function) .magic = VMOD_PRIV_METHODS_MAGIC, ^ vmod_uuid.c:118:3: error: field name not in record or union initializer .type = "vmod_uuid_priv_task", ^ vmod_uuid.c:118:3: error: (near initialization for ‘uuid_priv_task_methods’) vmod_uuid.c:119:3: error: field name not in record or union initializer .fini = free_uuids ^ vmod_uuid.c:119:3: error: (near initialization for ‘uuid_priv_task_methods’) vmod_uuid.c:119:11: error: ‘free_uuids’ undeclared here (not in a function) .fini = free_uuids ^ vmod_uuid.c:123:20: error: expected ‘)’ before ‘struct’ get_uuids(VRT_CTX, struct vmod_priv *priv, uuid_t **uuid_ns) ^ vmod_uuid.c:163:1: error: unknown type name ‘VCL_STRING’ VCL_STRING ^ vmod_uuid.c:164:23: error: expected ‘)’ before ‘struct’ vmod_uuid_v1(VRT_CTX, struct vmod_priv *priv) ^ vmod_uuid.c:172:1: error: unknown type name ‘VCL_STRING’ VCL_STRING ^ vmod_uuid.c:173:23: error: expected ‘)’ before ‘struct’ vmod_uuid_v3(VRT_CTX, struct vmod_priv *priv, VCL_STRING ns, VCL_STRING name) ^ vmod_uuid.c:182:1: error: unknown type name ‘VCL_STRING’ VCL_STRING ^ vmod_uuid.c:183:23: error: expected ‘)’ before ‘struct’ vmod_uuid_v4(VRT_CTX, struct vmod_priv *priv) ^ vmod_uuid.c:191:1: error: unknown type name ‘VCL_STRING’ VCL_STRING ^ vmod_uuid.c:192:23: error: expected ‘)’ before ‘struct’ vmod_uuid_v5(VRT_CTX, struct vmod_priv *priv, VCL_STRING ns, VCL_STRING name) ^ vmod_uuid.c:201:1: error: unknown type name ‘VCL_STRING’ VCL_STRING ^ vmod_uuid.c:202:20: error: expected ‘)’ before ‘struct’ vmod_uuid(VRT_CTX, struct vmod_priv *priv) ^ vmod_uuid.c:116:39: error: ‘uuid_priv_task_methods’ defined but not used [-Werror=unused-variable] static const struct vmod_priv_methods uuid_priv_task_methods[1] = {{ ^ cc1: all warnings being treated as errors make[2]: *** [vmod_uuid.lo] Error 1 make[2]: Leaving directory `/usr/local/src/libvmod-uuid/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/libvmod-uuid' make: *** [all] Error 2 Please help *Thanks & Regards,* *Uday Kumar* On Thu, Apr 25, 2024 at 6:18 AM Uday Kumar wrote: > Hi Guillaume, > > Thanks for
Re: Append uniqueid to a http request at varnish
Hi Guillaume, Thanks for this reminder, I will check this and get back to you! *Thanks & Regards,* *Uday Kumar* On Thu, Apr 25, 2024 at 1:12 AM Guillaume Quintard < guillaume.quint...@gmail.com> wrote: > Hi Uday, > > I feel like we've explored this last year: > https://varnish-cache.org/lists/pipermail/varnish-misc/2023-May/027238.html > > I don't think the answer has changed much: vmod-uuid is your best bet here. > > Please let me know if I'm missing some requirements. > > Kind regards, > > -- > Guillaume Quintard > > > On Wed, Apr 24, 2024 at 4:26 AM Uday Kumar > wrote: > >> Hello all, >> >> We follow below architecture in our production environment: >> User request ---> Varnish > Tomcat Backend >> >> We have a requirement of generating an unique id at varnish that can be >> appended to a request url. >> So that it can be propagated to the backend and also will be useful in >> tracking errors efficiently >> >> varnish version used: varnish-5.2.1 >> >> Example: >> original request: >> /search/test?q=bags=mobile >> >> After appending unique id [This needs to be sent to backend and to be >> stored in varnish logs]: >> /search/test?q=bags=mobile=abc123 >> >> Please help us know if there is any way to do this at varnish >> >> *Thanks & Regards,* >> *Uday Kumar* >> ___ >> varnish-misc mailing list >> varnish-misc@varnish-cache.org >> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc >> > ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
Re: Append uniqueid to a http request at varnish
Hi Uday, I feel like we've explored this last year: https://varnish-cache.org/lists/pipermail/varnish-misc/2023-May/027238.html I don't think the answer has changed much: vmod-uuid is your best bet here. Please let me know if I'm missing some requirements. Kind regards, -- Guillaume Quintard On Wed, Apr 24, 2024 at 4:26 AM Uday Kumar wrote: > Hello all, > > We follow below architecture in our production environment: > User request ---> Varnish > Tomcat Backend > > We have a requirement of generating an unique id at varnish that can be > appended to a request url. > So that it can be propagated to the backend and also will be useful in > tracking errors efficiently > > varnish version used: varnish-5.2.1 > > Example: > original request: > /search/test?q=bags=mobile > > After appending unique id [This needs to be sent to backend and to be > stored in varnish logs]: > /search/test?q=bags=mobile=abc123 > > Please help us know if there is any way to do this at varnish > > *Thanks & Regards,* > *Uday Kumar* > ___ > varnish-misc mailing list > varnish-misc@varnish-cache.org > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc > ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
Append uniqueid to a http request at varnish
Hello all, We follow below architecture in our production environment: User request ---> Varnish > Tomcat Backend We have a requirement of generating an unique id at varnish that can be appended to a request url. So that it can be propagated to the backend and also will be useful in tracking errors efficiently varnish version used: varnish-5.2.1 Example: original request: /search/test?q=bags=mobile After appending unique id [This needs to be sent to backend and to be stored in varnish logs]: /search/test?q=bags=mobile=abc123 Please help us know if there is any way to do this at varnish *Thanks & Regards,* *Uday Kumar* ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc