mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
* add jaeger support, link hot container & req span * adds jaeger support now with FN_JAEGER_URL, there's a simple tutorial in the operating/metrics.md file now and it's pretty easy to get up and running. * links a hot request span to a hot container span. when we change this to sample at a lower ratio we'll need to finagle the hot container span to always sample or something, otherwise we'll hide that info. at least, since we're sampling at 100% for now if this is flipped on, can see freeze/unfreeze etc. if they hit. this is useful for debugging. note that zipkin's exporter does not follow the link at all, hence jaeger... and they're backed by the Cloud Empire now (CNCF) so we'll probably use it anyway. * vendor: add thrift for jaeger
195 lines
6.7 KiB
Plaintext
195 lines
6.7 KiB
Plaintext
dnl @synopsis AX_LIB_EVENT([MINIMUM-VERSION])
|
|
dnl
|
|
dnl Test for the libevent library of a particular version (or newer).
|
|
dnl
|
|
dnl If no path to the installed libevent is given, the macro will first try
|
|
dnl using no -I or -L flags, then searches under /usr, /usr/local, /opt,
|
|
dnl and /opt/libevent.
|
|
dnl If these all fail, it will try the $LIBEVENT_ROOT environment variable.
|
|
dnl
|
|
dnl This macro requires that #include <sys/types.h> works and defines u_char.
|
|
dnl
|
|
dnl This macro calls:
|
|
dnl AC_SUBST(LIBEVENT_CPPFLAGS)
|
|
dnl AC_SUBST(LIBEVENT_LDFLAGS)
|
|
dnl AC_SUBST(LIBEVENT_LIBS)
|
|
dnl
|
|
dnl And (if libevent is found):
|
|
dnl AC_DEFINE(HAVE_LIBEVENT)
|
|
dnl
|
|
dnl It also leaves the shell variables "success" and "ax_have_libevent"
|
|
dnl set to "yes" or "no".
|
|
dnl
|
|
dnl NOTE: This macro does not currently work for cross-compiling,
|
|
dnl but it can be easily modified to allow it. (grep "cross").
|
|
dnl
|
|
dnl @category InstalledPackages
|
|
dnl @category C
|
|
dnl @version 2007-09-12
|
|
dnl @license AllPermissive
|
|
dnl
|
|
dnl Copyright (C) 2009 David Reiss
|
|
dnl Copying and distribution of this file, with or without modification,
|
|
dnl are permitted in any medium without royalty provided the copyright
|
|
dnl notice and this notice are preserved.
|
|
|
|
dnl Input: ax_libevent_path, WANT_LIBEVENT_VERSION
|
|
dnl Output: success=yes/no
|
|
AC_DEFUN([AX_LIB_EVENT_DO_CHECK],
|
|
[
|
|
# Save our flags.
|
|
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
LDFLAGS_SAVED="$LDFLAGS"
|
|
LIBS_SAVED="$LIBS"
|
|
LD_LIBRARY_PATH_SAVED="$LD_LIBRARY_PATH"
|
|
|
|
# Set our flags if we are checking a specific directory.
|
|
if test -n "$ax_libevent_path" ; then
|
|
LIBEVENT_CPPFLAGS="-I$ax_libevent_path/include"
|
|
LIBEVENT_LDFLAGS="-L$ax_libevent_path/lib"
|
|
LD_LIBRARY_PATH="$ax_libevent_path/lib:$LD_LIBRARY_PATH"
|
|
else
|
|
LIBEVENT_CPPFLAGS=""
|
|
LIBEVENT_LDFLAGS=""
|
|
fi
|
|
|
|
# Required flag for libevent.
|
|
LIBEVENT_LIBS="-levent"
|
|
|
|
# Prepare the environment for compilation.
|
|
CPPFLAGS="$CPPFLAGS $LIBEVENT_CPPFLAGS"
|
|
LDFLAGS="$LDFLAGS $LIBEVENT_LDFLAGS"
|
|
LIBS="$LIBS $LIBEVENT_LIBS"
|
|
export CPPFLAGS
|
|
export LDFLAGS
|
|
export LIBS
|
|
export LD_LIBRARY_PATH
|
|
|
|
success=no
|
|
|
|
# Compile, link, and run the program. This checks:
|
|
# - event.h is available for including.
|
|
# - event_get_version() is available for linking.
|
|
# - The event version string is lexicographically greater
|
|
# than the required version.
|
|
AC_LANG_PUSH([C])
|
|
dnl This can be changed to AC_LINK_IFELSE if you are cross-compiling,
|
|
dnl but then the version cannot be checked.
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <sys/types.h>
|
|
#include <event.h>
|
|
]], [[
|
|
const char* lib_version = event_get_version();
|
|
const char* wnt_version = "$WANT_LIBEVENT_VERSION";
|
|
int lib_digits;
|
|
int wnt_digits;
|
|
for (;;) {
|
|
/* If we reached the end of the want version. We have it. */
|
|
if (*wnt_version == '\0' || *wnt_version == '-') {
|
|
return 0;
|
|
}
|
|
/* If the want version continues but the lib version does not, */
|
|
/* we are missing a letter. We don't have it. */
|
|
if (*lib_version == '\0' || *lib_version == '-') {
|
|
return 1;
|
|
}
|
|
/* In the 1.4 version numbering style, if there are more digits */
|
|
/* in one version than the other, that one is higher. */
|
|
for (lib_digits = 0;
|
|
lib_version[lib_digits] >= '0' &&
|
|
lib_version[lib_digits] <= '9';
|
|
lib_digits++)
|
|
;
|
|
for (wnt_digits = 0;
|
|
wnt_version[wnt_digits] >= '0' &&
|
|
wnt_version[wnt_digits] <= '9';
|
|
wnt_digits++)
|
|
;
|
|
if (lib_digits > wnt_digits) {
|
|
return 0;
|
|
}
|
|
if (lib_digits < wnt_digits) {
|
|
return 1;
|
|
}
|
|
/* If we have greater than what we want. We have it. */
|
|
if (*lib_version > *wnt_version) {
|
|
return 0;
|
|
}
|
|
/* If we have less, we don't. */
|
|
if (*lib_version < *wnt_version) {
|
|
return 1;
|
|
}
|
|
lib_version++;
|
|
wnt_version++;
|
|
}
|
|
return 0;
|
|
]])], [
|
|
success=yes
|
|
])
|
|
AC_LANG_POP([C])
|
|
|
|
# Restore flags.
|
|
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
LDFLAGS="$LDFLAGS_SAVED"
|
|
LIBS="$LIBS_SAVED"
|
|
LD_LIBRARY_PATH="$LD_LIBRARY_PATH_SAVED"
|
|
])
|
|
|
|
|
|
AC_DEFUN([AX_LIB_EVENT],
|
|
[
|
|
|
|
dnl Allow search path to be overridden on the command line.
|
|
AC_ARG_WITH([libevent],
|
|
AS_HELP_STRING([--with-libevent@<:@=DIR@:>@], [use libevent [default=yes]. Optionally specify the root prefix dir where libevent is installed]),
|
|
[
|
|
if test "x$withval" = "xno"; then
|
|
want_libevent="no"
|
|
elif test "x$withval" = "xyes"; then
|
|
want_libevent="yes"
|
|
ax_libevent_path=""
|
|
else
|
|
want_libevent="yes"
|
|
ax_libevent_path="$withval"
|
|
fi
|
|
],
|
|
[ want_libevent="yes" ; ax_libevent_path="" ])
|
|
|
|
|
|
if test "$want_libevent" = "yes"; then
|
|
WANT_LIBEVENT_VERSION=ifelse([$1], ,1.2,$1)
|
|
|
|
AC_MSG_CHECKING(for libevent >= $WANT_LIBEVENT_VERSION)
|
|
|
|
# Run tests.
|
|
if test -n "$ax_libevent_path"; then
|
|
AX_LIB_EVENT_DO_CHECK
|
|
else
|
|
for ax_libevent_path in "" $lt_sysroot/usr $lt_sysroot/usr/local $lt_sysroot/opt $lt_sysroot/opt/local $lt_sysroot/opt/libevent "$LIBEVENT_ROOT" ; do
|
|
AX_LIB_EVENT_DO_CHECK
|
|
if test "$success" = "yes"; then
|
|
break;
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test "$success" != "yes" ; then
|
|
AC_MSG_RESULT(no)
|
|
LIBEVENT_CPPFLAGS=""
|
|
LIBEVENT_LDFLAGS=""
|
|
LIBEVENT_LIBS=""
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_LIBEVENT,,[define if libevent is available])
|
|
ax_have_libevent_[]m4_translit([$1], [.], [_])="yes"
|
|
fi
|
|
|
|
ax_have_libevent="$success"
|
|
|
|
AC_SUBST(LIBEVENT_CPPFLAGS)
|
|
AC_SUBST(LIBEVENT_LDFLAGS)
|
|
AC_SUBST(LIBEVENT_LIBS)
|
|
fi
|
|
|
|
])
|