If your signal is a narrow band and real signal, the Hilbert Transform can be useful to determine the amplitude modulation and phase modulation components of the signal. This is done by adding the signal to it's Hilbert Transform as an imaginary component, and this result is called the "Analytic Signal" and given as:
$$x_a(t) = x(t) + j \hat x(t)$$
Where $\hat x(t)$ is the Hilbert Transform of $x(t)$.
Note that tools like MATLAB/Octave and Python scipy.signal actually return the analytic signal from the hilbert function, and not the Hilbert Transform directly (the Hilbert Transform would be the imaginary component of the complex signal that is returned).
In terms of AM and PM components $x_a(t)$ can be described as:
$$x_a(t) = A(t)e^{j(\omega t + \phi(t))}$$
And thus the absolute value of the analytic signal ($|x_a(t)|$) will recover the real envelope or AM component of the signal $A(t)$. If you take the phase of the analytic signal and subtract a reference carrier $\omega$, you can recover the phase modulation of the signal $\phi(t)$.
As Hilmar points out here and other posts, this does not work well for wideband signals. If we are to extract "oscillations in a signal", the implication in that statement is that we are either dealing with a narrowband signal with a tone (carrier) as reference, or a wideband reference signal from which we can extract narrow band oscillations.
For the more complicated case of a wideband reference signal a complex correlator could be used to accomplish this- we would need to first align the signals in time (our signal being observed and our reference), where the same correlation techniques can be used for alignment. Correlation is done with a product and low pass filter of the two waveforms, and the same result would be the difference or low frequency oscillation we seek to observe.