***

title: "RegisterMethodHooks"
generated: true
---------------

<GenerationInfo sourceFile="packages/telemetry-plugin/src/service/method-hooks.service.ts" sourceLine="60" packageName="@vendure/telemetry-plugin" since="3.3.0" />

Allows you to register hooks for a specific method of an instrumented class.
These hooks allow extra telemetry actions to be performed on the method.

They can then be passed to the [TelemetryPlugin](/current/core/reference/core-plugins/telemetry-plugin/#telemetryplugin) via the [TelemetryPluginOptions](/current/core/reference/core-plugins/telemetry-plugin/telemetry-plugin-options#telemetrypluginoptions).

*Example*

```typescript
const productServiceHooks = registerMethodHooks(ProductService, {
    findOne: {
        // This will be called before the method is executed
        pre: ({ args: [ctx, productId], span }) => {
            span.setAttribute('productId', productId);
        },
        // This will be called after the method is executed
        post: ({ result, span }) => {
            span.setAttribute('found', !!result);
        },
    },
});
```

```ts title="Signature"
function registerMethodHooks<T>(target: Type<T>, hooks: MethodHooksForType<T>): MethodHookConfig<T>
```

Parameters

### target

\<MemberInfo kind="parameter" type={`Type<T>`} />

### hooks

\<MemberInfo kind="parameter" type={`MethodHooksForType<T>`} />
