mirror of https://github.com/postgres/postgres
parent
9dc34b5feb
commit
e9b4969062
@ -0,0 +1,24 @@ |
|||||||
|
/* ---------- |
||||||
|
* DTrace probes for PostgreSQL backend |
||||||
|
* |
||||||
|
* Copyright (c) 2006, PostgreSQL Global Development Group |
||||||
|
* |
||||||
|
* $PostgreSQL: pgsql/src/backend/utils/probes.d,v 1.1 2006/07/24 16:32:45 petere Exp $ |
||||||
|
* ---------- |
||||||
|
*/ |
||||||
|
|
||||||
|
provider postgresql { |
||||||
|
|
||||||
|
probe transaction__start(int); |
||||||
|
probe transaction__commit(int); |
||||||
|
probe transaction__abort(int); |
||||||
|
probe lwlock__acquire(int, int); |
||||||
|
probe lwlock__release(int); |
||||||
|
probe lwlock__startwait(int, int); |
||||||
|
probe lwlock__endwait(int, int); |
||||||
|
probe lwlock__condacquire(int, int); |
||||||
|
probe lwlock__condacquire__fail(int, int); |
||||||
|
probe lock__startwait(int, int); |
||||||
|
probe lock__endwait(int, int); |
||||||
|
|
||||||
|
}; |
@ -0,0 +1,56 @@ |
|||||||
|
/* ----------
|
||||||
|
* pg_trace.h |
||||||
|
* |
||||||
|
* Definitions for the PostgreSQL tracing framework |
||||||
|
* |
||||||
|
* Copyright (c) 2006, PostgreSQL Global Development Group |
||||||
|
* |
||||||
|
* $PostgreSQL: pgsql/src/include/pg_trace.h,v 1.1 2006/07/24 16:32:45 petere Exp $ |
||||||
|
* ---------- |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef PG_TRACE_H |
||||||
|
#define PG_TRACE_H |
||||||
|
|
||||||
|
#ifdef ENABLE_DTRACE |
||||||
|
|
||||||
|
#include <sys/sdt.h> |
||||||
|
|
||||||
|
/*
|
||||||
|
* The PG_TRACE macros are mapped to the appropriate macros used by DTrace. |
||||||
|
* |
||||||
|
* Only one DTrace provider called "postgresql" will be used for PostgreSQL, |
||||||
|
* so the name is hard-coded here to avoid having to specify it in the |
||||||
|
* source code.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#define PG_TRACE(name) \ |
||||||
|
DTRACE_PROBE(postgresql, name) |
||||||
|
#define PG_TRACE1(name, arg1) \ |
||||||
|
DTRACE_PROBE1(postgresql, name, arg1) |
||||||
|
#define PG_TRACE2(name, arg1, arg2) \ |
||||||
|
DTRACE_PROBE2(postgresql, name, arg1, arg2) |
||||||
|
#define PG_TRACE3(name, arg1, arg2, arg3) \ |
||||||
|
DTRACE_PROBE3(postgresql, name, arg1, arg2, arg3) |
||||||
|
#define PG_TRACE4(name, arg1, arg2, arg3, arg4) \ |
||||||
|
DTRACE_PROBE4(postgresql, name, arg1, arg2, arg3, arg4) |
||||||
|
#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5) \ |
||||||
|
DTRACE_PROBE5(postgresql, name, arg1, arg2, arg3, arg4, arg5) |
||||||
|
|
||||||
|
#else /* not ENABLE_DTRACE */ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Unless DTrace is explicitly enabled with --enable-dtrace, the PG_TRACE |
||||||
|
* macros will expand to no-ops. |
||||||
|
*/ |
||||||
|
|
||||||
|
#define PG_TRACE(name) |
||||||
|
#define PG_TRACE1(name, arg1) |
||||||
|
#define PG_TRACE2(name, arg1, arg2) |
||||||
|
#define PG_TRACE3(name, arg1, arg2, arg3) |
||||||
|
#define PG_TRACE4(name, arg1, arg2, arg3, arg4) |
||||||
|
#define PG_TRACE5(name, arg1, arg2, arg3, arg4, arg5) |
||||||
|
|
||||||
|
#endif /* not ENABLE_DTRACE */ |
||||||
|
|
||||||
|
#endif /* PG_TRACE_H */ |
Loading…
Reference in new issue